簡體   English   中英

mysqli准備的語句綁定結果和循環

[英]mysqli prepared statement bind result and loop

我有此代碼旨在在數據庫中進行搜索:

$key = '%'.$_GET['key'].'%';
$result= $db->prepare("SELECT * FROM information WHERE stuId LIKE ? 
                                            OR stuName LIKE ? LIMIT ?,10");
$result->bind_param('ssi',$key,$key,$startpage);
$result->execute();
$result->bind_result($stuId,$stuName,$date,$stuSex,$stuAdd);
while($result->fetch()) {
    $stuDoB= $date->format('d/m/Y');
    echo "<tr>
              <td class='col1'>
                  <div>$stuId</div>
              </td>
              <td>
                  <div><a href='editStudent.php?stuId=$stuId'>" . htmlspecialchars($stuName) . "</a></div>
              </td>
              <td class='col3'>
                 <div>$stuDoB</div>
              </td>
              <td class='col4'>
                 <div>$stuSex</div>
              </td>
              <td class='col5'>
                 <div>" . htmlspecialchars($stuAdd) . "</div>
              </td>
            </tr>";
}

我正在嘗試學習准備好的語句,因此我從正常方式更改為上述代碼,您能告訴我:

  • 我是否必須在$result->fetch() result- $result->fetch()bind_result()還是在循環外僅bind_result()一次bind_result()
  • 我的代碼有問題嗎? 總是給出帶有任何$ key和致命錯誤的空行結果: Fatal error: Call to a member function format() on a non-object in D:\\xampp\\htdocs\\baiTapLon\\showPage.php on line 30

第30行是$stuDoB= $date->format('d/m/Y');

請幫幫我。

  • 我是否必須在$ result-> fetch()內綁定bind_result還是在循環外僅綁定一次bind_result()?

您必須在循環外使用一次手段bind_result

  • 我的代碼有問題嗎? 它總是給出帶有任何$ key和致命錯誤的空行結果:“致命錯誤:在第30行的D:\\ xampp \\ htdocs \\ baiTapLon \\ showPage.php中的非對象上調用成員函數format()”

您不能將格式用於任何變量 ,像這樣使用它

$date1 = new DateTime($date);
$stuDoB= $date1->format('d/m/Y');

暫無
暫無

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

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