PHP - mysql_fetch_assoc() 问题

标签 php mysql

我是 PHP 新手,正在尝试学习如何显示从 mysql 数据库 (phpmyadmin) 中选择的数据。我当前的 php 代码由 2 个文件 connect.inc.php 和 connecting.php 组成:

conncet.inc.php 是用来与数据库建立连接的文件:

<?php
//Varialbles
//MYSQL details
$mysql_server='localhost';
$mysql_user='root';
$mysql_user_pass='12345678';
$mysql_db='test';

//Messages
$db_conn_error='Could not connect to database';

if(mysql_connect($mysql_server, $mysql_user, $mysql_user_pass)
and mysql_select_db($mysql_db)){
echo 'Connection is ok'.'<br>';
}
else
{
echo 'Connection is not ok';
}
?>

而另一个文件 (connecting.php) 应该显示名为 food 的特定表中的所有记录:

<?php
require 'connect.inc.php';

$query = "SELECT 'food', 'calories' FROM food ORDER BY 'id'";


if ($query_run = mysql_query($query)){

    while($query_row = mysql_fetch_assoc($query_run)){
        $food = $query_row['food'];
        $calories = $query_row['calories'];

        echo $food . ' has '.$calories.' calories.<br>';
    }

}
else
{
echo 'Query Failed';
}
?>

其他详细信息:

  • 服务器名称:本地主机
  • 用户:root
  • 密码:12345678
  • 数据库名称:test
  • 表名:食物
  • 字段名称:id、food、calories、healthy_unhealthy

这个问题是,每当我在文件 connecting.php 中执行代码时,我总是得到以下信息:

  • 连接正常
  • 食物含有卡路里卡路里。
  • 食物含有卡路里卡路里。

什么时候应该说

  • 连接正常
  • 披萨含有 1000 卡路里
  • 沙拉有 200 卡路里

非常感谢您的帮助:)

提前致谢

乔:)

最佳答案

这是因为您在查询中使用了单引号 (')

$query = "SELECT 'food', 'calories' FROM food ORDER BY 'id'";

此查询将给出如下输出:

food | calories
-----|---------
food | calories
food | calories

SQLFiddle

单引号 (') 用于字符串文字。如果您想转义您的列名,请使用反引号 (`) instesd。

$query = "SELECT `food`, `calories` FROM food ORDER BY `id`";

SQLFiddle

注意:请为列名和表名使用不同的名称。目前您正在使用 food 作为列名和表名。请避免这种情况。

关于PHP - mysql_fetch_assoc() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18811360/

相关文章:

php - 检索数据库表中具有特定值的最新条目

php - 在 php 中取消转义双引号

php - Joomla 2.5 父类别 ID

php - Jqgrid 分页由于查询而无法工作

javascript - 如何使用带有 php 的 cropit jquery 插件裁剪和上传照片

mysql - 在第三个表中合并 2 个 mysql 表

php - CakePHP 1.2.5 中多个模型的分页

javascript - 防止在定时在线测验中作弊

php - MySQL中有没有设置过滤选项

php - 使用多个值的内连接查询