我正在尝试使用以下代码从mysql表中获取所有数据:
$dbc = mysqli_connect('host', 'user', 'password', 'table');
$q = 'SELECT * FROM users';
$r = mysqli_query($dbc, $q);
$user_array = array();
while ($row = mysql_fetch_array($r))
{
$user_array[]=$row;
}
echo "<br />";
echo "print r of user_array: <br />";
print_r($user_array);
我什么都没得到。我查看了本教程(http://www.w3schools.com/php/php_mysql_select.asp)等,但他们所做的只是让我感到困惑。
我做错了什么?
答案 0 :(得分:2)
尝试更改此
mysql_fetch_array($r)
到
mysqli_fetch_array($r)
答案 1 :(得分:2)
您已通过程序性MySQLi API(mysqli_connect()
)进行了连接,但您尝试使用旧mysql_fetch_array()
API中的旧版mysql_*()
。它们不兼容。
您需要通过mysqli_fetch_array()
或mysqli_fetch_assoc()
取消。除非您在输出$row
中的列名称之外确实需要数字键,否则建议使用mysqli_fetch_assoc()
:
// Check for errors.
if ($r) {
while ($row = mysqli_fetch_assoc($r)) {
$user_array[] = $row;
}
}
else echo mysqli_error($dbc);
您现在使用的是一个没有参数的简单查询,只有SELECT *
没有WHERE
子句。对于将来,当您开始添加WHERE
条件时,您将要开始阅读有关预准备语句和mysqli::prepare()
的内容。