簡體   English   中英

准備好的語句mysqli沒有返回行

[英]prepared statement mysqli not returning rows

我有一些准備好的語句的PHP代碼。 它在javascript中通過Ajax調用。 我確信在帳戶表中有一個名為mark(無上限)的帳戶,但是當我將$ _POST ['query']設置為m來調用它時,它會發現$ stmt-> num_rows === 0為真。 沒有錯誤可以看到,它只是不起作用! 正如您所知,它將內容回顯到表中。 我在phpMyAdmin中嘗試了這個查詢:SELECT username FROM accounts WHERE username LIKE'%m%',它運行正常。 我創建了這個代碼來搜索mysql數據庫中的用戶名。 如果您想知道,$ conn是包含文件中定義的有效mysqli對象。

<?php
require_once('./include.php');
$stmt=$conn->stmt_init();
$stmt->prepare('SELECT username FROM accounts WHERE username LIKE ?');
$compquery='%'.$_POST['query'].'%';
$stmt->bind_param('s',$compquery);
$stmt->execute();
echo '<tr><td>';
if($stmt->num_rows!==0){
    $stmt->bind_result($name);
    while($stmt->fetch()){
        echo "$name</td></tr><tr><td>";
    }
   echo '</td></tr>';
}
else
    echo 'No Results Found</td></tr>';

延伸評論:

您必須先使用mysql_stmt::store_result()才能使用mysqli_stmt::num_rows

$stmt=$conn->stmt_init();
$stmt->prepare('SELECT username FROM accounts WHERE username LIKE ?');
$compquery='%'.$_POST['query'].'%';
$stmt->bind_param('s',$compquery);
$stmt->execute();
$stmt->store_result();

暫無
暫無

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

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