-2

MySQLi オブジェクトを返し、それをループしてforeach();データベースからのデータのダンプを表示する基本的な MySQLi クエリがあります。ローカルで PHP 5.5.9 を実行してテストするとすべて問題ありませんが、PHP 5.3.3 を実行しているリモートの運用サーバーに配置すると、オブジェクトは返されますがvar_dump、結果をループして表示することはありません。

コードは次のとおりです。

if ($mysqli->connect_errno) {
echo "There was an error";
     } else {

          if ($result = $mysqli->query("SELECT * FROM acronyms")) {

     }
       else {

    echo "query error";

     }

     foreach($result as $x=>$y) {
         echo $y["definition"];
     }
}       

?>

本番サーバーに mysqli がインストールされているようですが、テスト サーバーにあるのと同じファイルでループしません。

また、通常の MySQL でクエリを書き直して、データベースからデータを取得することができました。

4

2 に答える 2

0

結果を相互に処理するために使用するなど、結果に対して実際に何かを行う必要がありfetch_assoc()ます。

$mysqli = new mysqli("localhost", "name", "pw", "db");

if ($mysqli->connect_errno) {
  echo "There was an error";
}
else {

  if ($result = $mysqli->query("SELECT * FROM acronyms")) {
  }
  else {
    echo "query error";
  }

  while ($row = $result->fetch_assoc()) {
    echo $row["definition"];
  }

}

while ($row = $result->fetch_assoc()) {これは、このような MySQLi の結果をロールスルーするために使用されるかなり標準的な方法であることに注意してください。

于 2014-05-21T12:28:05.037 に答える