0

我正在尝试使用以下代码简单地从 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)等,但他们所做的只是让我感到困惑。

我究竟做错了什么?

4

2 回答 2

2

尝试改变这个

mysql_fetch_array($r)

mysqli_fetch_array($r)
于 2013-03-06T04:08:27.983 回答
2

您已通过程序 MySQLi API ( mysqli_connect()) 进行连接,但您正尝试使用旧 APImysql_fetch_array()中的旧mysql_*()API。它们不兼容。

您需要通过mysqli_fetch_array()mysqli_fetch_assoc()取而代之。mysqli_fetch_assoc()除非您真的需要数字键以及输出中的列名,否则建议使用$row

// Check for errors.
if ($r) {
  while ($row = mysqli_fetch_assoc($r)) {
    $user_array[] = $row;
  }
}
else echo mysqli_error($dbc);

您现在使用的是一个没有参数的简单查询,只是一个SELECT *没有WHERE子句的查询。将来,当您开始添加WHERE条件时,您将希望开始阅读有关准备好的语句和mysqli::prepare().

于 2013-03-06T04:08:45.980 回答