私はデータベースで検索する目的でこのコードを持っています:
$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>";
}
プリペアドステートメントを学習しようとしているので、通常の方法から上記のコードに変更します。教えてください:
- ループ内でbind_resultを実行する必要がありますか、それともループ外で
$result->fetch()
1回だけ実行する必要がありますか?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');
私を助けてください。