通过php添加数据到mysql
values中包含html语言
比如其中添加数据:<a href="xxx" target="_blank"><img src="xxx" /></a>
中间包含双引号我输出看了下。输出后在双引号前面都加了一个斜杠\
我测试,在mysql中直接用sql添加可以成功,在php中删除了这些引号类的东西也可以添加成功
说明sql语句本身是没有问题。
请问下这种带引号的sql改怎么弄。
本人php菜鸟希望哪位大神教教。。。
有两种可能:
1、是你的php配置中开启了自动转义,你先运行一下var_dump(get_magic_quotes_gpc());
如果返回的是true的话,那就是开启了,到php.ini中把magic_quotes_gpc改成off
2、你的程序是否在插入前使用了htmlspecialchars或者htmlentities之类的转义函数追问
1、是你的php配置中开启了自动转义,你先运行一下var_dump(get_magic_quotes_gpc());
如果返回的是true的话,那就是开启了,到php.ini中把magic_quotes_gpc改成off
2、你的程序是否在插入前使用了htmlspecialchars或者htmlentities之类的转义函数追问
第一种可能,我搜索了下。没有php.ini这个文件。至于运行上面的代码,不会弄。今天才学了点php
第二种可能也没有。
我这边是单独弄了个php文件来操作数据库。
不过我刚才在php文件中直接添加sql代码。在双引号前面都加了个斜杠\ 添加成功了。不过post过来的还是不对。
Php.ini文件是php的一个配置文件,在windows主机中如果你未修改配置文件php ini文件肯定是和你的php安装目录在一起的
试试这样 可以看下正则表达式的知识
谢谢亲,我这样确实可以成功。
但是我post过来
$sql=$_POST['sql'];
echo $sql;
mysql_query($sql);这样执行就不能成功
这样输出看到的sql语句也是这种形式。
如果复制里面的输出的sql直接放到mysql_query()里面又可以执行成功
温馨提示:答案为网友推荐,仅供参考