當我從 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 中拋出
添加回答
舉報
0/150
提交
取消