php - 替换语句中的反斜杠 - 语法错误

标签 php mysql

我有一个脚本可以让我替换数据库中的值。

当我使用这个时:

$search[] = ("\\");

$sql[$handle]['sql'] = 'UPDATE '.$table.' SET '.$field.' = REPLACE('.$field.',\''.$search[$i].'\',\''.$replace[$i].'\')';

我收到以下错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行 ''\')' 附近使用的正确语法

我知道这可能只是转义反斜杠的问题,但我已经尝试了一切(更改为双引号、转义、使用字符代码、utf 8 编码/解码等,但仍然没有运气。

请注意,其他值效果很好(我有一个 $search[] 值列表)

最佳答案

因为 "\\" 创建字符串 \,因此普通 SQL 是 REPLACE('...,\'),即一个错误。使用:

$search[] = ("\\\\");

看看mysql string literals .

关于php - 替换语句中的反斜杠 - 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12389254/

相关文章:

java - jsp mysql 注册时出错

php - 根据其值更改返回的 $_POST 值

linux - SELINUX 阻止 php-fpm 和 nginx 一起工作?

php - 如果条件为真,安全 MYSQL 插入多行

php - 如何从 symfony Controller 抛出 400 错误请求?

mysql - 根据 id 的数组查询 id

php - 如何在 Symfony 2 中运行纯 mysql 查询?

mysql - 使用约束和外键的 SQL 出现问题

mysql - 我可以使用新创建的 auto_increment 主键重新插入一行吗

mysql - sql查询给出语法错误