查询工作在phpmyadmin上,但不在php脚本中
我已经尝试过类似问题的其他解决方案,但似乎没有任何效果。正如标题所说,我需要在数据库上执行的查询在phpMyAdmin上运行良好,但在php函数中使用时不起作用。这是common_functions.php:查询工作在phpmyadmin上,但不在php脚本中,php,mysql,Php,Mysql,我已经尝试过类似问题的其他解决方案,但似乎没有任何效果。正如标题所说,我需要在数据库上执行的查询在phpMyAdmin上运行良好,但在php函数中使用时不起作用。这是common_functions.php: function eliminaRistorante($id_ristorante) { global $conn; // query su ristorante $sql = "DELETE FROM ristorante WHERE id_risto
function eliminaRistorante($id_ristorante) {
global $conn;
// query su ristorante
$sql = "DELETE FROM ristorante WHERE id_ristorante = $id_ristorante";
echo $sql;
if($conn->query($sql) === TRUE) {
return true;
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
return false;
}
}
include('includes/logic/common_functions.php');
if (isset($_POST['del'])) {
$id_ristorante = $_POST['del'];
eliminaRistorante($id_ristorante);
header('location: admin/ristorante.php');
}
我放置了一个echo语句,以查看查询是否有效正确。
这是输出:
从ristorante中删除,其中id_ristorante=5
致命错误:未捕获错误:在C:\xampp\htdocs\projects\db_ristorante\includes\logic\common_functions.php:57堆栈跟踪:#0 C:\xampp\htdocs\projects\db_ristorante\hold.php(8):eliminaRistorante('5')#1{main}在第57行的C:\xampp\htdocs\projects\db\u ristorante\includes\logic\common\u functions.php中抛出
最后,我尝试了以下解决方案:
在这个问题中,用户友好地分享了我也考虑过的其他解决方案
未捕获错误:在中对null调用成员函数query()
您的$conn对象为空。您没有初始化PDO实例
这里是一个介绍,关于如何做到这一点,
调用null上的成员函数query()
并不意味着查询有问题,它意味着$conn
为null。最好将$conn
作为参数传递到函数中,而不是使用全局变量。此外,您还需要查看准备好的语句,而不是将字符串连接到查询中。由于这两个原因,我得到了出现错误的原因,我按照@droopsnoot的建议进行了操作,并将$conn作为参数传递,从而解决了问题。