我從一行中收到兩種不同類型的錯誤,我花了很長時間才找出錯誤所在。這是 php 在使用 bacticks 連接 MySql 查詢語句以分隔字符串時顯示的一個有趣的行為。$query='SELECT c.name as category_name, p.id, p.category_id, p.title, p.body, p.author, p.created_at FROM'.$this->table. ' p LEFT JOIN categories c ON p.category_id=c.id ORDER BY p.created_at DESC';注意:FROM 和反引號之間沒有空格。錯誤如下致命錯誤:未捕獲的 PDOException:SQLSTATE[42000]:語法錯誤或訪問沖突:1064 您的 SQL 語法有誤;檢查與您的 MariaDB 服務器版本對應的手冊,了解在 C:\xampp\htdocs\php_REST_myblog\ 中第 2 行的 'p LEFT JOIN categories c ON p.category_id=c.id ORDER BY p.crea' 附近使用的正確語法models\Post.php: 31 堆棧跟蹤:#0 C:\xampp\htdocs\php_REST_myblog\models\Post.php(31): PDOStatement->execute()#1 C:\xampp\htdocs\php_REST_myblog\api\posts \read.php(18): Post->read()#2 {main } throw in C:\xampp\htdocs\php_REST_myblog\models\Post.php on line 31下一個變化是 $query='SELECT c.name as category_name, p.id, p.category_id, p.title, p.body, p.author, p.created_at FROM '.$this->table. 'p LEFT JOIN categories c ON p.category_id=c.id ORDER BY p.created_at DESC';注意反引號和 p 之間沒有空格。DB name 是 myblog 和 table name 是 posts. 下面的錯誤是致命錯誤:未捕獲的 PDOException:SQLSTATE[42S02]:未找到基表或視圖:1146 C:\xampp\htdocs\php_REST_myblog\models\Post.php 中不存在表“myblog.postsp”:31 堆棧跟蹤:# 0 C:\xampp\htdocs\php_REST_myblog\models\Post.php(31): PDOStatement->execute()#1 C:\xampp\htdocs\php_REST_myblog\api\posts\read.php(18): 后-> read()#2 {main }在第31行 C:\xampp\htdocs\php_REST_myblog\models\Post.php中拋出正確的代碼在下面有兩個額外的空格。$query='SELECT c.name as category_name, p.id, p.category_id, p.title, p.body, p.author, p.created_at FROM '.$this->table. ' p LEFT JOIN categories c ON p.category_id=c.id ORDER BY p.created_at DESC';出了什么問題?
- 1 回答
- 0 關注
- 150 瀏覽
添加回答
舉報
0/150
提交
取消