1

これは空白のページを返します:

<?php

$con=mysqli_connect("xxx.x.xx.x","user","password","db");

// check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT column FROM table WHERE id=1");

print $result;

mysqli_close($con);
?>

そして、これはデータを返します:

<?php

$con=mysqli_connect("xxx.x.xx.x","user","password","db");

// check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM table");

while($row = mysqli_fetch_array($result))
  {
  echo $row['column_1'] . " " . $row['column_2'];
  echo "<br>";
  }

mysqli_close($con);
?>

データを返さないコードの最初のブロックの何が問題になっていますか?

4

1 に答える 1

2

http://php.net/manual/en/mysqli.query.php

mysqli_queryオブジェクトを返すことを教えてくれmysqli_queryます。string や int のようなプリミティブ値ではありません。

これを言っている正確な行は次のとおりです。

失敗すると FALSE を返します。SELECT、SHOW、DESCRIBE、または EXPLAIN クエリが成功した場合、mysqli_query() は mysqli_result オブジェクトを返します。その他の成功したクエリの場合、mysqli_query() は TRUE を返します。

columnしたがって、最初のブロックは の値が自動的に返されると想定するため、最初のブロックは機能しません。

実際、同じ を使用したSELECT column from table where id=1場合でも、while ループを使用して値を抽出する必要があります。

while ループとは、次のことを意味します。

while($row = mysqli_fetch_array($result))
{
  echo $row['column_1'];
  echo "<br>";
}

これがあなたの質問に答えることを願っています。

于 2013-08-20T00:38:58.303 に答える