繁体   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