在phpmyadmin中工作的Laravel中存在MySQL访问冲突
我刚刚开始使用Laravel框架,并找到了一个很好的分层数据小指南(通过这个网站),我已经做得很好了 我遇到的唯一问题是通过Laravel运行以下代码:在phpmyadmin中工作的Laravel中存在MySQL访问冲突,php,mysql,laravel,Php,Mysql,Laravel,我刚刚开始使用Laravel框架,并找到了一个很好的分层数据小指南(通过这个网站),我已经做得很好了 我遇到的唯一问题是通过Laravel运行以下代码: DB::query("LOCK TABLE pages WRITE; SELECT @myLeft := lft FROM pages WHERE id = ?; UPDATE pages SET rgt = rgt + 2 WHERE rgt > @myLeft; UPDATE pages
DB::query("LOCK TABLE pages WRITE;
SELECT @myLeft := lft FROM pages WHERE id = ?;
UPDATE pages SET rgt = rgt + 2 WHERE rgt > @myLeft;
UPDATE pages SET lft = lft + 2 WHERE lft > @myLeft;
UNLOCK TABLES;", 1);
当我通过phpmyadmin运行命令时,工作正常,但在Laravel中,我得到一个错误:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;
我还有很多其他查询运行正常,所以我不知道从哪里开始查找,我已经尝试向表名和字段名中添加`并移除锁,看看这是否会起到任何作用,但没有任何改变。好的,我想Lavarel只想运行一个查询,而我正在尝试运行五个,当我按照下面的方式拆分命令时,它会起作用,
$ord = DB::first("SELECT lft FROM pages WHERE id = ?;", $order);
DB::query("UPDATE pages SET rgt = rgt + 2 WHERE rgt > ?;", $ord->lft);
DB::query("UPDATE pages SET lft = lft + 2 WHERE lft > ?;", $ord->lft);
每个
DB::query()
只执行一个查询。在不查看源代码的情况下,此方法设计为只运行一条语句