2016-11-16 51 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