使用 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 $