2015-01-11 38 views
2

美好的一天,我不太熟悉PHP,当我尝试执行我的查询时遇到此错误。bind_param(); PHP问题;

警告:

警告:mysqli_stmt :: bind_param():变量数不 /Users/site/userpanel.php上线匹配在准备好的声明中的参数个数10

代码:

$query="SELECT SUM(gebruiker_id) AS totalitems FROM inventory WHERE gebruiker_id = 1"; 
$stmt = $db->prepare($query); 
$stmt->bind_param("s", $items); 
$stmt->execute(); 
$result = $stmt->bind_result($col1); 

提前感谢!

+0

代码和/或数据库中的混合语言被认为是一个设计缺陷。 – Sherlock

回答

3

你必须使用这样的占位符:

$query="SELECT SUM(gebruiker_id) AS totalitems FROM inventory WHERE gebruiker_id = ?"; 
$stmt = $db->prepare($query); 
$stmt->bind_param("s", $items); 
$stmt->execute(); 
$result = $stmt->bind_result($col1); 
+0

感谢您的帮助!如果我使用?因为占位符结果将为1,而它必须是8,因为gebruiker_id在那里有8次 –

+0

@ J.Koppen不客气!祝你有个美好的一天:D(顺便说一句:你可以接受答案最能帮助你,解决你的问题!)(http://meta.stackexchange.com/q/5234)) – Rizier123

+0

你对人类!只有它没有解决我的问题。它应该返回8,因为我的表中有8行与gebruiker_id 1相同。 –

1

有时候,你并不需要绑定:

$query="SELECT SUM(gebruiker_id) AS totalitems FROM inventory WHERE gebruiker_id = 1"; 
$stmt = $db->prepare($query); 
//$stmt->bind_param("s", $items); 
$stmt->execute(); 
$result = $stmt->bind_result($col1); 

$query="SELECT SUM(gebruiker_id) AS totalitems FROM inventory WHERE gebruiker_id = 1"; 
$stmt = $db->query($query); 
$result = $stmt->bind_result($col1); 

但是,如果你试图绑定$itemsgebruiker_id然后按照@rizier123的答案。

+0

让我来解释一下。我必须总结多少次“gebruiker_id”1在表中的“项目”(即8),然后结果必须是8. –

+0

@ J.Koppen使用'COUNT()' – meda