字符转义存入数据库的问题,高手进来哦 我的电脑上是安装的PHPnow里面带的PHP和MYSQL在我电脑上把字符存入数据库的时候,不需要用addslashes()把单引号等东西转移,但是我的虚拟机里面却不能存储单个的引号,需要用addslashs()添加反斜杠才行这个是版本问题还是哪儿可以设置?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没看明白楼主的意思。转义字符是这样的:在字符串中,某些序列具有特殊含义。这些序列均用反斜线(‘\’)开始,即所谓的转义字符。MySQL识别下面的转义序列:\0 ASCII 0(NUL)字符。 \' 单引号(‘'’)。 \" 双引号(‘"’)。 \b 退格符。 \n 换行符。 \r 回车符。 \t tab字符。 \Z ASCII 26(控制(Ctrl)-Z)。该字符可以编码为‘\Z’,以允许你解决在Windows中ASCII 26代表文件结尾这一问题。(如果你试图使用mysql db_name < file_name,ASCII 26会带来问题)。 \\ 反斜线(‘\’)字符。 \% ‘%’字符。参见表后面的注解。 \_ ‘_’字符。参见表后面的注解。 这些序列对大小写敏感。例如,‘\b’解释为退格,但‘\B’解释为‘B’。 贴出你的SQL语句,还有错误提示。 $name="你'好";$txt="你'好";$sql="insert into `topic` (`name`,`txt`,`time`) values ('$name','$txt','".time()."')";if(mysql_query($sql,$data->conn)){echo "发帖成功!";}else{echo "发帖失败!<br/>";}上面的代码中,$name和$txt都含有一个',在我自己的电脑上,执行上面的代码后,就提示“发帖成功”;但是在虚拟主机中提示“发帖失败”;没有错误提示。后来,我把代码改成这样:$name=addslashes("你'好");$txt=addslashes(""你'好");$sql="insert into `topic` (`name`,`txt`,`time`) values ('$name','$txt','".time()."')";if(mysql_query($sql,$data->conn)){echo "发帖成功!";}else{echo "发帖失败!<br/>";}在虚拟主机中就能插入了,但是在我的电脑上,插入进数据库的就成这样了:你\'好 echo $sql;打印出来的分别贴到你的机器和虚拟机执行看看。 ; Magic quotes for incoming GET/POST/Cookie data.magic_quotes_gpc = Off检查一下php的配置文件php.ini 默认上面的参数是关闭的您电脑上的可能是开着的(所以提交的数据不需要手工转义),虚拟主机上的可能是关闭的(所以需要您手工转义) 【征询意见】两条SQL语句查询效率比较,那条更优 有没有什么办法找回drbd被full sync以前的数据 高分求助 mysql 启动1067错误 qq 25258767 服务器上配置的mysql数据库,运行大概十几个小时,就会自动关闭。 php如何获取存储过程中的out参数变量 远程备份的问题 能察看数据库mysql曾经的操作吗? 关于mysql_query()的一个小问题 mysql 中多表连接查询如何优化,提升效率 mysql中同一个账户最多同时存在的登陆数,以及限制? oracle存储过程转为MySQL过程,请进!!! 请问mysql如何做成双击启动?
ASCII 0(NUL)字符。
\'
单引号(‘'’)。
\"
双引号(‘"’)。
\b
退格符。
\n
换行符。
\r
回车符。
\t
tab字符。
\Z
ASCII 26(控制(Ctrl)-Z)。该字符可以编码为‘\Z’,以允许你解决在Windows中ASCII 26代表文件结尾这一问题。(如果你试图使用mysql db_name < file_name,ASCII 26会带来问题)。
\\
反斜线(‘\’)字符。
\%
‘%’字符。参见表后面的注解。
\_
‘_’字符。参见表后面的注解。
这些序列对大小写敏感。例如,‘\b’解释为退格,但‘\B’解释为‘B’。
$name="你'好";
$txt="你'好";
$sql="insert into `topic` (`name`,`txt`,`time`) values ('$name','$txt','".time()."')";
if(mysql_query($sql,$data->conn)){
echo "发帖成功!";
}else{
echo "发帖失败!<br/>";
}上面的代码中,$name和$txt都含有一个',在我自己的电脑上,执行上面的代码后,就提示“发帖成功”;但是在虚拟主机中提示“发帖失败”;没有错误提示。后来,我把代码改成这样:$name=addslashes("你'好");
$txt=addslashes(""你'好");
$sql="insert into `topic` (`name`,`txt`,`time`) values ('$name','$txt','".time()."')";
if(mysql_query($sql,$data->conn)){
echo "发帖成功!";
}else{
echo "发帖失败!<br/>";
}在虚拟主机中就能插入了,但是在我的电脑上,插入进数据库的就成这样了:
你\'好
magic_quotes_gpc = Off
检查一下php的配置文件php.ini 默认上面的参数是关闭的
您电脑上的可能是开着的(所以提交的数据不需要手工转义),虚拟主机上的可能是关闭的(所以需要您手工转义)