我的请求功能有问题:
function rdvDelete($rdv)
{
$pdo = connexion();
$sql = $pdo->prepare("DELETE FROM visitors,rdvs WHERE rdvs.idRdv = :rdv AND visitors.idVisitor = rdvs.idVisitor"); <-- line 34
$sql->execute(['rdv' => $rdv]);
}
$rdv = 3!!!
这会显示此错误
[错误代码] 639#639:*9791 FastCGI在标准错误中发送:“PHP消息:PHP致命错误:未捕获的PDO异常:数据库状态[42000]:语法错误或访问冲突:1064 1064您的SQL语法有错误;查看与您的MariaDB服务器版本相对应的手册,了解在/var/www/MY-WEBSITE/model/m_manage-rdvs.php中第1行的“WHERE rdvs.idRdv =?AND visitors. idVisitor = rdvs.idVisitor”附近使用的正确语法:34
谢谢
3条答案
按热度按时间lp0sw83n1#
我认为您的预准备语句有错误。在使用参数的实际值执行之前,您需要在语句中指定两个参数。
oyxsuwqo2#
SQLite不支持
DELETE
语句中的显式或隐式联接。您正在尝试在FROM
子句中使用逗号分隔的表并在WHERE
中使用联接条件进行隐式联接。对于相关的删除语句,请考虑在子查询中使用IN
或EXISTS
运算符:第一个
gcxthw6b3#
我用这个查询解决了我的问题: