为了账号安全,请及时绑定邮箱和手机立即绑定

从脚本发送时出现 SQL 语法错误

从脚本发送时出现 SQL 语法错误

PHP
隔江千里 2023-09-15 10:20:22
当我从 PHP 脚本发送此 SQL 时,我收到 SQL 语法错误,但是,如果我从 phpMyAdmin 运行它,它会按我预期的方式工作。SQL:DELIMITER $    CREATE TRIGGER update_listing_count    AFTER UPDATE ON `items`    FOR EACH ROW BEGIN        UPDATE `listings` SET units = (SELECT COUNT(*) FROM `items` WHERE listingid = NEW.listingid) WHERE id = NEW.listingid;        UPDATE `listings` SET unitsSold = (SELECT COUNT(*) FROM `items` WHERE listingid = NEW.listingid AND sold = true) WHERE id = NEW.listingid;    END$    DELIMITER ;PHP:$conn = DBConnection();    $stmt = $conn->prepare("DELIMITER $    CREATE TRIGGER update_listing_count    AFTER UPDATE ON `items`    FOR EACH ROW BEGIN        UPDATE `listings` SET units = (SELECT COUNT(*) FROM `items` WHERE listingid = NEW.listingid) WHERE id = NEW.listingid;        UPDATE `listings` SET unitsSold = (SELECT COUNT(*) FROM `items` WHERE listingid = NEW.listingid AND sold = true) WHERE id = NEW.listingid;    END$    DELIMITER ;");    $stmt->execute();错误:致命错误:未捕获的 PDOException:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在itemsC:\xampp\htdocs\marketplace.php:25 中第 1 行的“DELIMITER $ CREATE TRIGGER update_listing_count AFTER UPDATE ON”附近使用的正确语法:#0 C: \xampp\htdocs\marketplace.php(25): PDOStatement->execute() #1 {main} 在第 25 行的 C:\xampp\htdocs\marketplace.php 中抛出
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

答案是你不能使用 DELIMETER ON pdo...

查看完整回答
反对 回复 2023-09-15
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号