簡體   English   中英

將參數綁定到mysqli數據庫查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM