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 循环来提取值,因为它仍然是你要返回的 mysqli_result 对象。

通过while循环,我的意思是:

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

我希望这回答了你的问题。

于 2013-08-20T00:38:58.303 回答