我是 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
单引号 (') 用于字符串文字。如果您想转义您的列名,请使用反引号 (`) instesd。
$query = "SELECT `food`, `calories` FROM food ORDER BY `id`";
注意:请为列名和表名使用不同的名称。目前您正在使用 food
作为列名和表名。请避免这种情况。
关于PHP - mysql_fetch_assoc() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18811360/