[英]Binding parameter to mysqli database query
我得到這個:
警告:mysqli_stmt_bind_result()[function.mysqli-stmt-bind-result]:綁定變量數與准備好的語句中的字段數不匹配
我已經在代碼中在其上方定義了$ id和$ link,並且可以輕松連接到數據庫。
$query = "select * from tablename where id = ?";
if ($stmt = mysqli_prepare($link, $query)) {
mysqli_stmt_bind_param($stmt, 'i', $id);
//execute statement
mysqli_stmt_execute($stmt);
// bind result variables
mysqli_stmt_bind_result($stmt, $first, $last);
// fetch values
mysqli_stmt_fetch($stmt);
echo "$first $last<br>";
// close statement
mysqli_stmt_close($stmt);
}
在我看來,查詢只有一個'?',因此它只需要一個(整數類型)值即可填寫,我想我可以為它提供$ id。 救命?
您必須將每個列名稱放在SELECT中,而不要使用*
通配符Documentation 。
例
SELECT `FirstName`,`LastName` FROM `tablename` WHERE `id` = ?
錯誤消息說Number of bind variables doesn't match number of fields in prepared statement
。
在行mysqli_stmt_bind_result($stmt, $first, $last);
您正在嘗試將兩個變量( $first
和$last
)綁定到$stmt
。 但是,從數據庫中選擇的變量數量必須等於您嘗試賦給$stmt
的變量數量。 您可以如上所述進行操作。
邊注:我建議引述`tables`
和`columns`
與反引號的名字`
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.