Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php操作带有双引号及单引号的问题

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

WBOY
WBOYasal
2016-06-23 14:23:29970semak imbas

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, '\\', '')

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

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn