以下SQL查询:
INSERT INTO `database`.`table` (`param1`, `param2`)
VALUES (
'??????? ?????? – ???????? ???????? ?? ???????????? ????? ??????, ????????, ??????, ????? ????????????, ???????.\r\n???????? ?????????? ? ????????????, ????, ????????, ?????? ? ???????????? ????????????.\r\n?????????? ?? ????????? ?????????, ???????? ??????? ?????????????. \',
'??????? ????????? ??????, ?????, ?????? ?????? ??????, ???????????? ? ??????, ????????? ??????, ??????? ???? ? ??????, ?????? ? ??????, ????????, ??????, ????? ? ??????, ????? ??????, ??????? ??????, ??????? ?????, ?????? ? ??????, ??????? ?????, ??????? ??????? ??????, ??????');
Run Code Online (Sandbox Code Playgroud)
失败并显示错误消息:
您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在第1行'Томскийгородскойпортал,Томск,Порталгор'附近使用正确的语法
我在字符串上使用了mysql_real_escape_string,然后在SQL查询中使用它们,所以我认为这足以使它们没有错误.
我的数据库设置为使用
utf8_general_ci
作为这些字段的排序规则.
查询有什么问题?
你正在逃避'它应该关闭param1的值(values子句中的第一个值):
INSERT INTO `database`.`table` (`param1`, `param2`)
VALUES (
'...?. \', <= there
'...??');
Run Code Online (Sandbox Code Playgroud)
您应该在结束之前删除它\',因此您的查询如下所示:
INSERT INTO `database`.`table` (`param1`, `param2`)
VALUES (
'...?. ',
'...??');
Run Code Online (Sandbox Code Playgroud)
的\,而不是引号是字符串分隔符-逃避字符串引号内是必要的.