使用PHP插入带有外键的SQL表

时间:2016-11-16 00:12:08

标签: php mysql foreign-keys insert-into

我正在尝试使用PHP将数据插入到包含2个外键的SQL表中。我的表格如下:

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是此代码包含在其中的类的属性,product_id是传递给类函数的值。我可以将值直接复制并粘贴到我的查询中,但仍然无效。

我正在使用WAMPserver,当我尝试测试这段代码时,我收到以下错误:

  

致命错误:调用未定义的方法mysqli :: INSERT INTO cart_prod(cart_id,prod_id)VALUES('77717','123456789');()位于第38行的C:\ wamp64 \ www \ php \ customer.php

我的两个外键在其他表中都有值。数据库没有主键。数据库的工作方式是cart_id的每一行都包含一个产品。与特定cart_id相关联的所有prod_id都属于该购物车。

实施例。数据库

cart_id prod_id
77717   123456789
77717   987654321
12345   113987454
12345   123456789

我在查询中的语法错误,我似乎忽略了?或者是需要更改数据库的东西,例如添加主键。

1 个答案:

答案 0 :(得分:0)

这是你的问题

$result = $conn->$query($query);

将其更改为

$result = $conn->query($query);
// -------------^  remove the $