2016-03-01 87 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