2016-03-01 80 views
-2

我想從這個代碼更新數據庫中的表沒有更新表,但它一直返回一個致命錯誤的mysqli bind_param數據庫

 $stmt = $mysqli->prepare("UPDATE $tbl_name SET cart = ? WHERE username = $myUsername"); 
     $stmt->bind_param('s', $chosenParts2); 
     $stmt->execute(); 
     $stmt->close(); 
+0

你能發表致命錯誤嗎? – Kordi

+0

致命錯誤:調用位於/home/jeffgogu/public_html/RaptorCPU/pages/cart.php上的非對象的成員函數bind_param(第178行) – Jeff

+0

可能的重複[如何防止PHP中的SQL注入? ](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –

回答

0

你的SQL語句是錯誤的。所以evtl.表或字段不存在。因此,只要調試

UPDATE $tbl_name SET cart = ? WHERE username = $myUsername 

只需添加下面的可能後$ mysqli->準備

echo $mysqli->error; 

,它應該很清楚爲什麼會得到這個錯誤。錯誤未知列是因爲$ myUsername沒有被轉義,你只需綁定這個變量。

$stmt = $mysqli->prepare("UPDATE $tbl_name SET cart = ? WHERE username = ?"); 
$stmt->bind_param('ss', $chosenParts2, $myUsername); 
$stmt->execute(); 
$stmt->close(); 
+0

它在'where子句'中返回未知列'jeff' – Jeff

+0

Jeff我更新了我的答案。 – Kordi