2015-01-11 87 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