php mysqli fetch_row只返回列名

时间:2016-04-07 19:45:10

标签: php mysqli

我有一个包含列的表(user_id,user_name,user_email,user_pw)和2行

1 admin admin@admin.com admin

2 user_1 user_1@user.com user_1

我试图在此示例后从PHP查询数据库 http://php.net/manual/en/mysqli-result.fetch-row.php

但是当我打印输出时,我只获取列名而不是值(不幸的是,也会忽略换行符)

Connection successSelect返回2行.user_id,user_name,user_email user_id,user_name,user_email

我基本上复制了链接中的示例。我在这里做错了什么?

<?php

$conn_error = "Could not connect to db";

$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_password = '';
$mysql_db = 'test';

$mysqli = new mysqli($mysql_host, $mysql_user, $mysql_password, $mysql_db);

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  } else {
  echo "Connection successful";
  }

$query = "SELECT 'user_id', 'user_name', 'user_email' FROM users";

if ($result = $mysqli->query($query)) {

    printf("Select returned %d rows.", mysqli_num_rows($result));

    /* fetch object array */
    while ($row = $result->fetch_row()) {
        printf ("%s, %s, %s\n", $row[0], $row[1], $row[2]);
    }

    $result->close();

} else {

    echo "Nothing returned on query " .$query;

}
$mysqli->close();

?>

1 个答案:

答案 0 :(得分:3)

删除字段名称周围的引号。变化:

SELECT 'user_id', 'user_name', 'user_email' FROM users

要:

SELECT user_id, user_name, user_email FROM users

您可能打算使用返回刻度,如下所示:

SELECT `user_id`, `user_name`, `user_email` FROM users

这也可以,但只有在字段名称中使用保留字或特殊字符(如空格)时才需要它们。

相关问题