2016-11-16 132 views
0

我想用PHP将数据插入到包含2个外键的SQL表中。我的表布局如下:使用PHP插入到带有外键的SQL表中

title=products 

columns = cart_id, prod_id // Both columns are foreign keys that come from another table. 

我已经能够成功地插入phpMyAdmin的数据,但每当我尝试我的PHP脚本中插入,我遇到错误。在SQL查询的phpmyadmin给的

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,当我尝试测试的这部分代码,我得到以下错误:

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

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

Ex。数据库

cart_id prod_id 
77717 123456789 
77717 987654321 
12345 113987454 
12345 123456789 

我是否在查询中的语法错误,我似乎忽略了?还是需要改变数据库的某些内容,例如添加主键。

+0

conn_create()是我写的一个连接到我被从文件中抓住我的身份验证使用的数据库的功能。该函数的行为与预期的一样,因为我可以在许多其他正在正常工作的SQL查询中使用它。 – Tesla51P

回答

0

这是你的问题,它

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

更改为

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

谢谢你的工作。我知道它必须是我忽略的简单东西。 – Tesla51P

+0

不客气 – RiggsFolly