如何使用php从mysql中的单个表中获取所有数据?

时间:2013-03-06 04:04:46

标签: php mysql mysqli

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

我做错了什么?

2 个答案:

答案 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()的内容。