我遇到以下错误:
:'<,'>w !xclip -i
这是发生代码的地方:
Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 syntax error, unexpected '-'
当名称中带有破折号(-)时,将出现问题。当名称为“普通”(不带破折号)时,它将起作用。
我尝试了此问题(PDO and UTF-8 Special characters in PHP / MySQL?)的解决方案,但这不起作用。
有人知道吗?
谢谢!
@lonesomeday答案有效,但是我找到了另一个解决方案。通过将“ IN BOOLEAN MODE”更改为“ IN NATURAL LANGUAGE MODE”,错误消失了。
答案 0 :(得分:4)
问题是IN BOOLEAN MODE
全文搜索。搜索字符串中的字符-
(以及several others)具有特殊含义(搜索中不包含单词)。我认为,您的错误是由一个-
字符引起的,该字符前面紧跟一个单词,中间没有空格。
无论如何,-
不会像其他运算符一样成为搜索的一部分,因此最简单的方法是将其与其他运算符一起剥离。
$name = str_replace(['-', '+', '<', '>', '(', ')', '~', '*', '\'', '"'], ' ', $name);
仅当您确实希望在此上下文中使用它们的特定含义时,才包括这些字符。