gpt4 book ai didi

php - 使用 mysqli_query 查询数据时出现 fetch_array 错误

转载 作者:可可西里 更新时间:2023-11-01 00:39:58 25 4
gpt4 key购买 nike

如果我尝试创建这样的 sql 查询:

$sql2 = mysqli_query($connection,"SELECT * FROM CHILD_IMG WHERE PROD_ID='$delID'") or die(mysqli_error());
$getQuery = $connection->query($sql2);
while($row = $getQuery->fetch_array()){
$childID = $row['ID'];
$parentID = $row['PROD_ID'];
$childName = '../ProductImages/ChildImages/'.$parentID . "_".$childID.".jpg";
unlink($childName);
}

我收到以下错误:

Fatal error: Call to a member function fetch_array() on null in

如果我像这样运行查询并将其存储到 $sql:

$sql2 = ("SELECT * FROM CHILD_IMG WHERE PROD_ID = '$delID'") or die(mysqli_error());
$getQuery = $connection->query($sql2);
while($row = $getQuery->fetch_array()){
$childID = $row['ID'];
$parentID = $row['PROD_ID'];
$childName = '../ProductImages/ChildImages/'.$parentID . "_".$childID.".jpg";
unlink($childName);
}

查询运行顺利,没有任何问题。

为什么第一个选项不起作用的问题是什么?

最佳答案

看到这段代码了吗?

$sql2 = mysqli_query($connection,"SELECT * FROM CHILD_IMG WHERE PROD_ID='$delID'") or die(mysqli_error());
^^^^^^^^^^^^
$getQuery = $connection->query($sql2);
^^^^^

您实际上查询了两次,这就是您收到错误的原因。

另外,or die(mysqli_error()) 属于查询调用之后,它需要一个数据库连接作为参数。

即:或 die(mysqli_error($connection))

因此,您将执行以下操作来检查查询是否失败:

if(!$getQuery){

echo "Error: " . die(mysqli_error($connection));

}

重写:

$sql2 = "SELECT * FROM CHILD_IMG WHERE PROD_ID='$delID'";
$getQuery = $connection->query($sql2);
while($row = $getQuery->fetch_array()){
$childID = $row['ID'];
$parentID = $row['PROD_ID'];
$childName = '../ProductImages/ChildImages/'.$parentID . "_".$childID.".jpg";
unlink($childName);
}

您还对 SQL 注入(inject)持开放态度;使用准备好的语句。

引用资料:

注意:如果您打算继续使用 PDO,请记住不要混合使用不同的 MySQL API。

关于php - 使用 mysqli_query 查询数据时出现 fetch_array 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45237625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com