尝试使用以下代码:
$operator = '+';
$conn = $entityManager->getConnection();
$stmt = $conn->prepare("
UPDATE articles a SET a.position = a.position :operator 1
")->execute([
'operator' => $operator
]);
在 SQL 语句中UPDATE articles a SET a.position = a.position :operator 1,:operator参数应该替换为'+', 来自先前定义的$operator变量,但实际上它运行失败并返回此错误:
执行 'UPDATE 文章 a SET a.position = a.position :operator + 1 with params ["+"] 时发生异常:
SQLSTATE[42000]:语法错误或访问冲突:1064 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 ''+' 1 附近使用的正确语法
小怪兽爱吃肉