这将返回一个空白页面:
<?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);
?>
阻止它返回任何数据的第一个代码块出了什么问题?
http://php.net/manual/en/mysqli.query.php
告诉我mysqli_query
返回一个mysqli_query
对象。不是像字符串或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>";
}
我希望这能回答你的问题。