Home >Backend Development >PHP Tutorial >php操作带有双引号及单引号的问题

php操作带有双引号及单引号的问题

WBOY
WBOYOriginal
2016-06-23 14:23:291008browse

php 数据库

因为没有开启magic_quotes_gpc, 所以插入数据库的时候, 所有带有单引号和双引号的数据前面加了个反斜杠,
我想将这些数据查询出来, 将反斜杠去掉更新一下, 但是测试了几个方式都不行 
$query = "SELECT id,title FROM  `test` WHERE  `title` LIKE  '%\'%' OR `title` LIKE  '%\"%'";$query = mysql_query($query);while($res =mysql_fetch_assoc($query)){    $title = stripslashes($res['title']);    $sql ="UPDATE `test` SET `title`={$title} WHERE id=$res['id']";    mysql_query($sql);}

回复讨论(解决方案)

转义后的数据存放到数据库中时,转义符不会被保留
也就是说,从数据库中读出的数据是不含转义符的
如要让其再次放进数据库,则需要再次转义!

在高版本的 php 中 magic_quotes_gpc 开关已被取消
这就意味着,你必须在入库前自行处理特殊字符

转义后的数据存放到数据库中时,转义符不会被保留
也就是说,从数据库中读出的数据是不含转义符的
如要让其再次放进数据库,则需要再次转义!

在高版本的 php 中 magic_quotes_gpc 开关已被取消
这就意味着,你必须在入库前自行处理特殊字符

但是读取出来是有转义符的, 所以才想着读取数据库处理一下title, 在更新一下。谢谢!

不会的!
你可以截图来看


我用drupal建的站点,

那你应该匹配 \\' 和\\"

查看下源码是不是

那你应该匹配 \\' 和\\"
这样查询是没有结果的, 我用mysql自带的replace函数替换掉了
UPDATE table_name SET col=REPLACE(col, '\\', '')

是你把反斜杠加到数据库中的吗,肯定是谁故意加上去的。。。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn