簡體   English   中英

PHP mysqli准備語句不起作用

[英]PHP mysqli prepare statement not working

我正在使用mysqli prepare語句來查詢具有多個約束的數據庫。 我已經在我的測試文件中運行了代碼,它運行得非常好。 但是,當我將代碼移動到我的實時文件時,它會拋出以下錯誤:

PHP警告:mysqli_stmt :: bind_result():綁定變量數與第80行C:\\ wamp \\ www \\ firecom \\ firecom.php中預准備語句中的字段數不匹配

PHP注意:未定義的變量:在第89行產生C:\\ wamp \\ www \\ firecom \\ firecom.php

兩個參數都正確設置,但有些東西正在拋棄它。

碼:

$query = $mysqli->prepare("SELECT * FROM calls WHERE wcccanumber = ? && county = ?");
$query->bind_param("ss", $wcccanumber, $county);
$query->execute();

$meta = $query->result_metadata();

while ($field = $meta->fetch_field()) {
    $parameters[] = &$row[$field->name];
}

call_user_func_array(array($query, 'bind_result'), $parameters);

while ($query->fetch()) {
    foreach($row as $key => $val) {
        $x[$key] = $val;
    }
    $results[] = $x;
}

print_r($results['0']);

$ query var_dump:

object(mysqli_stmt)#27 (10) { ["affected_rows"]=> int(-1) ["insert_id"]=> int(0) ["num_rows"]=> int(0) ["param_count"]=> int(2) ["field_count"]=> int(13) ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["sqlstate"]=> string(5) "00000" ["id"]=> int(1) }

為什么用mysqli折磨自己?
PDO中,您不需要這些可怕的代碼,而只需要一行來獲得結果

$query = $pdo->prepare("SELECT * FROM calls WHERE wcccanumber = ? && county = ?");
$query->execute(array($wcccanumber, $county));
$results = $query->fetchAll();
print_r($results[0]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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