在使用PHP查询MySQL数据库时,如何解决这个未定义的索引错误?
我正在通过新的波士顿Youtube视频教程学习PHP 当我在本地主机上用PHP脚本(脚本在错误消息下面)运行查询时,我得到一条重复两次的错误消息。请参阅下面的错误消息 我希望能够在PHP脚本中运行此查询,并返回我查询的信息 运行index.php时出现错误消息: 注意:第10行未定义索引:carries in/Applications/XAMPP/xamppfiles/htdocs/Database_To_Server/index.php 注意:第10行未定义索引:carries in/Applications/XAMPP/xamppfiles/htdocs/Database_To_Server/index.php 代码: index.php在使用PHP查询MySQL数据库时,如何解决这个未定义的索引错误?,php,mysql,sql,database,Php,Mysql,Sql,Database,我正在通过新的波士顿Youtube视频教程学习PHP 当我在本地主机上用PHP脚本(脚本在错误消息下面)运行查询时,我得到一条重复两次的错误消息。请参阅下面的错误消息 我希望能够在PHP脚本中运行此查询,并返回我查询的信息 运行index.php时出现错误消息: 注意:第10行未定义索引:carries in/Applications/XAMPP/xamppfiles/htdocs/Database_To_Server/index.php 注意:第10行未定义索引:carries in/Appl
<?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();
}
?>
<?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);
}
?>
connect.inc.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();
}
?>
<?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);
}
?>
您使用了错误的for(以及列名之间缺少逗号)
执行/并从aboutid
$query = "SELECT `food`, `calories` FROM `food` ORDER BY id";
- 如果您的列中没有食品(似乎是您的表名)
- 只是一种洞察力
脚注: 您当前的代码对开放。
使用,或
编辑 要修复当前查询,请执行以下操作:
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\u error()
上面的示例将输出类似于:
1049:未知数据库“不存在数据库”1146:表“kossu.nonexistenttable”不存在 您使用了错误的for(列名称之间缺少逗号) 执行/并从about
id
$query = "SELECT `food`, `calories` FROM `food` ORDER BY id";
- 如果您的列中没有食品(似乎是您的表名)
- 只是一种洞察力
脚注: 您当前的代码对开放。
使用,或
编辑 要修复当前查询,请执行以下操作:
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\u error()
上面的示例将输出类似于:
1049:未知数据库“不存在数据库”1146:表“kossu.nonexistenttable”不存在 解决方案是isset(),用于检查数组是否具有请求的元素。 您的SQL中也有一个缺陷。您尝试选择的字段必须用逗号分隔 例如:
<?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 = isset($query_row['food'])?$query_row['food']:'';
$calories = isset($query_row['calories'])?$query_row['calories']:'';
}
} else {
echo mysql_error();
}
?>
解决方案是isset(),用于检查数组是否具有请求的元素。
您的SQL中也有一个缺陷。您尝试选择的字段必须用逗号分隔
例如:
<?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 = isset($query_row['food'])?$query_row['food']:'';
$calories = isset($query_row['calories'])?$query_row['calories']:'';
}
} else {
echo mysql_error();
}
?>
将列和表名改为`
您的食物和卡路里变量在每个循环迭代中都会被覆盖
<?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);
}
?>
将列和表名改为`
您的食物和卡路里变量在每个循环迭代中都会被覆盖
<?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);
}
?>
首先,您在查询中选择的表之间缺少一个coma,然后,您使用的是一个不推荐使用的类(很快就会消失)。
如果你正在学习,你应该检查的数据计算,你应该试试
然后,您应该习惯于使用表或字段名以及字符串/VARCHAR或insert/updates/where等文本
希望这有帮助。首先,您在查询中选择的表之间缺少一个coma,然后,您使用的是一个不推荐使用的类(很快就会消失)。
如果你正在学习,你应该检查的数据计算,你应该试试
然后,您应该习惯于使用表或字段名以及字符串/VARCHAR或insert/updates/where等文本
希望这能有所帮助。我碰巧跟你学的是同一个教程。我花了一点时间才弄明白,但在看了他的示例并比较了这里的一些答案之后,我发现在运行查询时,需要使用“`”而不是单引号
(回答不正确)
$query=“按“id”从“食品”订单中选择“食品”、“卡路里”
(正确答案)
$query=“选择食品
,热量
来自食品
订购人id
” 我碰巧跟你学的是同一个教程。我花了一点时间才弄明白,但在看了他的示例并比较了这里的一些答案之后,我发现在运行查询时,需要使用“`”而不是单引号
(回答不正确)
$query=“按“id”从“食品”订单中选择“食品”、“卡路里”
(正确答案)
$query=“选择食品
,热量
来自食品
订购人id
” 您在这一行中缺少逗号和括号“按id从食品
订单中选择“食品”“卡路里”;“另外,强烈建议将表名和列名包装在后面。您应该使用mysqli\u*
函数,而不是mysql\u*
。顺便说一句,除了答案之外,这个示例代码不会让您在循环中覆盖变量。谢谢大家的评论。@Ra”phaelMüller,我将对此进行研究,但你能告诉我为什么该函数更好吗?在PHP中仍然非常新。我只做了几个星期。@jeroen,是的。我仍在继续教程,但因为我收到了错误消息(如上所述),我必须先解决这个问题,然后才能继续。感谢您的反馈!您在这一行中缺少了一个逗号和括号“从食品中选择“食品”“卡路里”
按“id”订购”另外,强烈建议将表名和列名包装在背面勾选框中。您应该使用mysqli\u*
函数,而不是mysql\u*
,除了