Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQLi prepare语句返回false_Php_Mysql_Mysqli - Fatal编程技术网

Php MySQLi prepare语句返回false

Php MySQLi prepare语句返回false,php,mysql,mysqli,Php,Mysql,Mysqli,我试图从数据库表中删除一行,我的msqli prepared语句返回false。我错误地检查了$commentId,它被正确地传递。但我找不到它不起作用的原因 请帮忙 <?php session_start(); include('connect.php'); if (isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] == true && $_SESSION['id'] == 43) {

我试图从数据库表中删除一行,我的msqli prepared语句返回false。我错误地检查了$commentId,它被正确地传递。但我找不到它不起作用的原因

请帮忙

<?php
session_start();

include('connect.php');

if (isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] == true && $_SESSION['id'] == 43) {
    DeleteRowFunction($_POST['commentId']);
} else {
    echo "You are not authorized to delete comments";
}

function DeleteRowFunction($commentId) {
    //$deleteComment = "DELETE FROM `login`.`commenttable` WHERE `commenttable`.`id` = ?";
    $deleteComment = "DELETE FROM commenttable WHERE id = ?";
    if ($stmt = mysqli_prepare($connection, $deleteComment)) {
        mysqli_stmt_bind_param($stmt, "s", $commentId);        
        mysqli_stmt_execute($stmt);
        mysqli_stmt_close($stmt);
    } else {
        echo "error";
    }
}
?>

您没有在函数中设置
$connection
变量。如果启用了错误报告,则会看到有关正在使用的未定义变量的警告

我假设它是在
connect.php
中设置的,但是全局变量在函数中不可见。您必须将其作为参数传递给函数:

DeleteRowFunction($connect, $_POST['commentId']);
...
function DeleteRowFunction($connection, $commentId) {
    ...
}

或者您需要放置
全局$connection
DeleteRowFunction()

的开头,你的数据库表是什么样子的?不要只回显
error
,使用
echo mysqli_error($connection)
你就会看到原因。你在哪里设置变量
$connection
?@Barmar我猜它在
include('connect.php')的内部行。哦,我们可以看看你的connect.php吗?你有一个范围问题。谢谢!!!!我花了几个小时在这上面,你是对的$连接在connect.php中,我需要在函数内部设置变量。应该更明显,但我一直在看:-)我希望你现在已经学到了不要禁用警告的教训。“注意:未定义的变量$connection”应该很明显。