我有一个包含列的表(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();
?>
答案 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
这也可以,但只有在字段名称中使用保留字或特殊字符(如空格)时才需要它们。