我是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';
}
?>
其他详情:
问题是每当我在connection.php文件中执行代码时,我总是得到以下内容:
何时应该说
非常感谢帮助:)
提前致谢,
乔:)答案 0 :(得分:2)
这是因为您在查询中使用单引号('
)
$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
作为列名和表名。请避免这种情况。
答案 1 :(得分:2)
在列和表名中使用`而不是',如下所示:
query= "SELECT `food`, `calories` FROM `food` ORDER BY `id`";
答案 2 :(得分:1)
尝试
$query = "SELECT `food`,`calories` FROM `food` ORDER BY 'id'";
答案 3 :(得分:1)
不使用单引号将您的查询更改为此内容:
$query = "SELECT food, calories FROM food ORDER BY id";
答案 4 :(得分:0)
请检查您的查询
尝试以下行并检查错误
$sql= mysql_query("SELECT * FROM food ORDER BY id") or mysql_error();
答案 5 :(得分:0)
您对列名和表名使用单引号(')。使用反引号(`)代替,一切都会好的。单引号用于php中的字符串。