Php 虽然我提供的数据匹配,但我的SQL语法中存在错误

Php 虽然我提供的数据匹配,但我的SQL语法中存在错误,php,mysqli,prepared-statement,mysql-error-1064,Php,Mysqli,Prepared Statement,Mysql Error 1064,我试图根据登录名、用户名和标题从数据库中删除某一行 但是,出现以下错误: 您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解要使用的正确语法(…) 我尝试过只基于loginName、基于用户名和基于标题进行删除,并查找了多个关于该问题的不同帖子,但没有一个帖子能解决我的问题。我还检查了数据库列名是否有误,但事实并非如此。我检查了includes文件夹是否有误,或者我是否弄错了数据库表单元格的名称,这些都是正确的,所以我现在有点不知所措,因此我创建了这篇文章 我的php脚

我试图根据登录名、用户名和标题从数据库中删除某一行

但是,出现以下错误:

您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解要使用的正确语法(…)

我尝试过只基于loginName、基于用户名和基于标题进行删除,并查找了多个关于该问题的不同帖子,但没有一个帖子能解决我的问题。我还检查了数据库列名是否有误,但事实并非如此。我检查了includes文件夹是否有误,或者我是否弄错了数据库表单元格的名称,这些都是正确的,所以我现在有点不知所措,因此我创建了这篇文章

我的php脚本如下所示:

$loginName = $_SESSION['loginName'];
$userName = $_SESSION['userName'];
$id = $_POST['id']; //this is for the hiddenTitle 
include_once 'dbConn.php';
$sqli = "DELETE * FROM posts WHERE loginName = ? AND name = ? AND hiddenTitle = ?";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sqli)) {
    var_dump($stmt);
} else {
    mysqli_stmt_bind_param($stmt, 'sss', $loginName, $userName, $id);
    mysqli_stmt_execute($stmt);
}
以下是我提交数据的方式:

function deletePostBtn(del) {
console.log(del.id); //this works
let id = del.id;
let data = {id: id};
$.ajax({
    url: 'deletePost.php',
    type: 'POST',
    data: data,
    success: function(response) {
        console.log(response); //sends back the error
    }
});
}   

因此,我试图实现的目标是:删除loginName=$\u POST['loginName'],name=$\u POST['userName']和hiddenTitle=$\u POST['id']所在的行。

您有
Delete*FROM…
。您应该让
删除…

尝试从脚本中删除
*
。应该是:

DELETE FROM posts ...

您的语句有三个参数占位符。您只提供了一个参数值。您需要为另外两个提供值。但是,当我尝试基于一个占位符删除时,会出现相同的错误吗?如果您的意思是在我的ajax调用中使用“一个参数值”id,那么其他两个参数值来自一个$\u会话您交换到
的信息会告诉您错误。不是真的,至少对我来说不够明显,否则我不会对此发表文章。
信息[交换到…不是真的告诉]错误
请照样逐字记录<代码>在
mysqli_stmt_prepare()
(,
mysqli_stmt_bind_param()
)或
mysqli_stmt_execute()
期间发生以下错误?