1

我是 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';
}
?>

额外细节:

  • 服务器名称:本地主机
  • 用户:根
  • 密码:12345678
  • 数据库名称:测试
  • 表名:食物
  • 字段名称:id、食物、卡路里、healthy_unhealthy

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

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

当它应该说

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

高度赞赏帮助:)

提前致谢,

乔:)

4

6 回答 6

2

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

$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用作列名和表名。请避免这种情况。

于 2013-09-15T10:42:36.873 回答
2

在列名和表名中使用 ` 而不是 ',如下所示:

query= "SELECT `food`, `calories` FROM `food` ORDER BY `id`";
于 2016-05-17T17:55:34.103 回答
1

尝试

$query = "SELECT `food`,`calories` FROM `food` ORDER BY 'id'";
于 2013-09-15T10:39:40.620 回答
1

将您的查询更改为此不带单引号:

$query = "SELECT food, calories FROM food ORDER BY id";
于 2013-09-15T10:39:46.950 回答
0

请检查您的查询

尝试以下行并检查错误

$sql= mysql_query("SELECT * FROM food ORDER BY id") or mysql_error();
于 2013-09-15T10:38:06.557 回答
0

您对列名和表名使用单引号 (')。改用反引号(`),一切都会好起来的。单引号用于 php 中的字符串。

于 2015-01-14T22:02:59.017 回答