所以我有PHP代碼這個塊mysqli的UPDATE SET WHERE語法錯誤
if($_POST['action']=='newComment')
{
$mysqli = new mysqli("localhost", "root", "", "nested_comment");
$new_post = $mysqli->real_escape_string($_POST['content']);
$result = $mysqli->query("SELECT @myLeft := lft FROM comment
WHERE lft = '1';
UPDATE comment SET rgt = rgt + 2 WHERE rgt > @myLeft;
UPDATE comment SET lft = lft + 2 WHERE lft >= @myLeft;
INSERT INTO comment(content, lft, rgt) VALUES('$new_post', @myLeft, @myLeft + 1);");
if($result)
echo "ok";
else
echo $mysqli->error;
}
當我運行此,拋出一個錯誤:
您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'UPDATE註釋SET rgt = rgt + 2 WHERE rgt> @myLeft; 更新評論SET'在第3行
但是,當我把sql查詢插入Sequel Pro(Mac),它工作得很好。我嘗試了很多其他職位的解決方案,但他們都沒有工作。我的語法有問題嗎,或者mysql版本有問題?非常感謝。
避免使用MySQL變量,除非它是程序的一部分。 – thepratt 2015-03-24 22:04:59