0

私はデータベースで検索する目的でこのコードを持っています:

$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');

私を助けてください。

4

1 に答える 1

0
  • $result->fetch() 内で bind_result する必要がありますか、それともループ外で bind_result() を 1 回だけ実行する必要がありますか?

bind_resultループの外側で一度手段を使用する必要があります

  • 私のコードに問題はありますか? $key と致命的なエラーで常に空の行の結果が返されます。

次のように使用する変数にフォーマットを使用することはできません

$date1 = new DateTime($date);
$stuDoB= $date1->format('d/m/Y');
于 2013-03-15T11:14:27.453 に答える