使用 PHP 通过外键插入 SQL Table
Using PHP to insert into SQL Table with Foreign Keys
我正在尝试使用 PHP 将数据插入到包含 2 个外键的 SQL table 中。我的table布局如下:
title=products
columns = cart_id, prod_id // Both columns are foreign keys that come from another table.
我已经能够在 phpmyadmin 中成功插入数据,但是每当我尝试在我的 php 脚本中插入数据时,我 运行 就会出错。 phpmyadmin 给出的 SQL 查询是
INSERT INTO `cart_prod` (`cart_id`, `prod_id`)
VALUES ('77717', '123456789');
但是,当我将该查询复制并粘贴到我的 php 代码中时,它不起作用。
$conn = conn_create();
$query = "INSERT INTO cart_prod (cart_id, prod_id)
VALUES ('$this->cart_id', '$product_id');";
$result = $conn->$query($query);
Cart id 是包含此代码的 class 的属性,product_id 是传递给 class 函数的值。我可以将值直接复制并粘贴到我的查询中,但仍然不起作用。
我正在使用 WAMPserver,当我尝试测试这部分代码时,出现以下错误:
Fatal error: Call to undefined method mysqli::INSERT INTO cart_prod(cart_id, prod_id) VALUES('77717', '123456789');() in C:\wamp64\www\php\customer.php on line 38
我的两个外键在其他 table 中都有值,它们是从中提取的。数据库没有主键。数据库的工作方式是 cart_id 的每一行都包含一个产品。与特定 cart_id 关联的所有 prod_id 都属于该购物车。
例如。数据库
cart_id prod_id
77717 123456789
77717 987654321
12345 113987454
12345 123456789
我似乎忽略了查询中的语法错误吗?还是数据库需要更改,例如添加主键。
这是你的问题
$result = $conn->$query($query);
改为
$result = $conn->query($query);
// -------------^ remove the $
我正在尝试使用 PHP 将数据插入到包含 2 个外键的 SQL table 中。我的table布局如下:
title=products
columns = cart_id, prod_id // Both columns are foreign keys that come from another table.
我已经能够在 phpmyadmin 中成功插入数据,但是每当我尝试在我的 php 脚本中插入数据时,我 运行 就会出错。 phpmyadmin 给出的 SQL 查询是
INSERT INTO `cart_prod` (`cart_id`, `prod_id`)
VALUES ('77717', '123456789');
但是,当我将该查询复制并粘贴到我的 php 代码中时,它不起作用。
$conn = conn_create();
$query = "INSERT INTO cart_prod (cart_id, prod_id)
VALUES ('$this->cart_id', '$product_id');";
$result = $conn->$query($query);
Cart id 是包含此代码的 class 的属性,product_id 是传递给 class 函数的值。我可以将值直接复制并粘贴到我的查询中,但仍然不起作用。
我正在使用 WAMPserver,当我尝试测试这部分代码时,出现以下错误:
Fatal error: Call to undefined method mysqli::INSERT INTO cart_prod(cart_id, prod_id) VALUES('77717', '123456789');() in C:\wamp64\www\php\customer.php on line 38
我的两个外键在其他 table 中都有值,它们是从中提取的。数据库没有主键。数据库的工作方式是 cart_id 的每一行都包含一个产品。与特定 cart_id 关联的所有 prod_id 都属于该购物车。
例如。数据库
cart_id prod_id
77717 123456789
77717 987654321
12345 113987454
12345 123456789
我似乎忽略了查询中的语法错误吗?还是数据库需要更改,例如添加主键。
这是你的问题
$result = $conn->$query($query);
改为
$result = $conn->query($query);
// -------------^ remove the $