Php 作为布尔值而不是资源返回的Sql结果

Php 作为布尔值而不是资源返回的Sql结果,php,mysql,sql,Php,Mysql,Sql,下面是php代码,我将插话解释错误发生的地方 //getting the aisles for the list via mysql query for($i = 0; $i < $size; $i++){ 结果将作为布尔值返回 $aisle= $temp["Aisle"]; $aisles[$i] = $aisle; print(current($aisles)); mysql_free_result($result); } 这是错误代码 5从ListNames中选择storeid,

下面是php代码,我将插话解释错误发生的地方

//getting the aisles for the list via mysql query
for($i = 0; $i < $size; $i++){
结果将作为布尔值返回

$aisle= $temp["Aisle"];
$aisles[$i] = $aisle;
print(current($aisles));
mysql_free_result($result);
}
这是错误代码

5从
ListNames
中选择storeid,其中user_id=1,listname='test'2i=0'items[0]'是从
items
中选择的,其中
Store_id
=2和
Name
= 警告:mysql_fetch_assoc()希望参数1是resource,布尔值在第66行的/home2/ctshaw96/public_html/scripts/getAisles.php中给出

警告:mysql_free_result()希望参数1是资源,布尔值在第70行的/home2/ctshaw96/public_html/scripts/getAisles.php中给出 i=1“项目[1]”是从
项目
中选择的过道,其中
商店ID
=2和
名称
= 警告:mysql_fetch_assoc()希望参数1是resource,布尔值在第66行的/home2/ctshaw96/public_html/scripts/getAisles.php中给出

警告:mysql_free_result()希望参数1是资源,布尔值在第70行的/home2/ctshaw96/public_html/scripts/getAisles.php中给出 i=2“项目[2]”是从
项目
中选择的过道,其中
商店ID
=2和
名称
= 警告:mysql_fetch_assoc()希望参数1是resource,布尔值在第66行的/home2/ctshaw96/public_html/scripts/getAisles.php中给出

警告:mysql_free_result()希望参数1是资源,布尔值在第70行的/home2/ctshaw96/public_html/scripts/getAisles.php中给出 i=3“项目[3]”是从
项目
中选择的过道,其中
商店ID
=2和
名称
= 警告:mysql_fetch_assoc()希望参数1是resource,布尔值在第66行的/home2/ctshaw96/public_html/scripts/getAisles.php中给出

警告:mysql_free_result()希望参数1是资源,布尔值在第70行的/home2/ctshaw96/public_html/scripts/getAisles.php中给出 i=4“项目[4]”是从
项目
中选择的过道,其中
商店ID
=2和
名称
= 警告:mysql_fetch_assoc()希望参数1是resource,布尔值在第66行的/home2/ctshaw96/public_html/scripts/getAisles.php中给出

警告:mysql_free_result()希望参数1是资源,布尔值在第70行的/home2/ctshaw96/public_html/scripts/getAisles.php中给出 “未找到项”“未找到项”“未找到项”“未找到项”“未找到项”

下面是url,如果出现错误,mysql\u query()将返回false

如果返回false,您可以使用mysql_error()获取错误消息。

此SQL:

SELECT Aisle FROM `Items` WHERE `Store_ID` = $storeid AND `Name`= {$items[$i]}
将生成不正确的SQL,例如

SELECT Aisle FROM `Items` WHERE `Store_ID` = $storeid AND `Name`= foo
它必须用单引号引起来


但是,请注意,使用外部变量构建SQL语句会使您的代码容易受到SQL注入攻击。此外,任何带有单引号的输入数据(如“O'Malley”)都会破坏您的查询。了解参数化查询,最好使用PDO模块,以保护您的web应用程序。有很多详细的例子。另见备选方案和危险说明运行使用外部数据构建的SQL语句就像吃从你家门口找到的配料做成的汤。

用单引号包装
item[$i]

$sql = "SELECT Aisle FROM `Items` WHERE `Store_ID` = $storeid AND `Name`= '{$items[$i]}'";

因此,您应该做的是转到手册页面,看看函数返回布尔值意味着什么。或者你可以点击右边任何一个名字类似的问题。你的DB连接现在不会碰巧是
mysqli\uu
,对吗?不,它是一个mysql而不是mysqli
$sql = "SELECT Aisle FROM `Items` WHERE `Store_ID` = $storeid AND `Name`= '{$items[$i]}'";