我正在通过新波士顿Youtube视频教程学习PHP。
当我在本地主机上运行PHP脚本中的查询(脚本在错误消息下面)时,我会得到一个重复两次的错误消息。请参见下面的错误消息。
我希望能够在PHP脚本中运行这个查询,并返回我所查询的信息。
运行时的index.php错误消息
注意:未定义的索引:第10行/Applications/XAMPP/xamppfiles/htdocs/Database_To_Server/index.php中的卡路里 注意:未定义的索引:第10行/Applications/XAMPP/xamppfiles/htdocs/Database_To_Server/index.php中的卡路里
码
index.php
<?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'];
}
} else {
echo mysql_error();
}
?>connect.inc.php
<?php
$conn_error = "Could not connect.";
$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_pass = '';
$mysql_db = 'a_database';
if (!@mysql_connect($mysql_host, $mysql_user, $mysql_pass) || !@mysql_select_db($mysql_db)) {
die($conn_error);
}
?>发布于 2014-09-22 16:53:21
您使用了错误的标识符 (以及列名之间缺少的逗号)
$query = "SELECT 'food' 'calories' FROM `food` ORDER BY 'id'";从关于'的id中删除id
$query = "SELECT `food`, `calories` FROM `food` ORDER BY id";food不是列的一部分(这似乎是表的名称)做
$query = "SELECT `calories` FROM `food` ORDER BY id";脚注:
您现在的代码对SQL注入开放。
编辑
若要修复当前查询,请执行以下操作:
require 'connect.inc.php';
$query = "SELECT `food`, `calories` FROM `food` ORDER BY `id`";
$result = mysql_query($query) or die(mysql_error());
while($query_row = mysql_fetch_assoc($result)){
echo $query_row['food']. " - ". $query_row['calories'];
echo "<br />";
}作为一种学习曲线,您应该使用mysql_error()作为您的优势,而不是仅仅显示Could not connect.,如果存在DB连接问题,那么就不会显示真正的错误是什么。
例如,:
<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
echo "Connected to MySQL<br />";
mysql_select_db("a_database") or die(mysql_error());
echo "Connected to Database";
?>或来自手册 - mysql_error()
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("nonexistentdb", $link);
echo mysql_errno($link) . ": " . mysql_error($link). "\n";
mysql_select_db("kossu", $link);
mysql_query("SELECT * FROM nonexistenttable", $link);
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
?>上面的示例将输出类似于:
1049:未知数据库“无存”b 1146:表“kossu.nonexistenttable”不存在
发布于 2014-09-22 16:56:52
你是食物,卡路里变量在每一个循环迭代中都被覆盖
<?php
require 'connect.inc.php';
$query = "SELECT `food` `calories` FROM `food` ORDER BY 'id'";
if ($query_run = mysqli_query($query)) {
while ($query_row = mysqli_fetch_assoc($query_run)) {
$food[] = $query_row['food']; // Food and calories variable transmored into an array
$calories[] = $query_row['calories'];
}
} else {
echo mysqli_error();
}
?>connect.inc.php
<?php
$conn_error = "Could not connect.";
$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_pass = '';
$mysql_db = 'a_database';
if (!@mysqli_connect($mysql_host, $mysql_user, $mysql_pass) || !@mysqli_select_db($mysql_db)) {
die($conn_error);
}
?>https://stackoverflow.com/questions/25979218
复制相似问题