登录
立即注册
首页
>
绿虎论坛
>
历史版块
>
编程
>
PHP
>
源码
关于将数据写入数据库
anylove
@Ta
2013-02-13
11914点击
这个'符号应该怎样处理,我的数据库写入是这样的$insert_sql="insert into chatinfo(talk,time,name,uid)values('$talk','$time','$name','$user_id')";
,只要文本中出现'就会写入失败
隐藏样式
查看源码
回复列表(19|
隐藏机器人聊天
)
1
DaMeng
@Ta
/ 2013-02-13 /
样
/
源
不知............
2
HYGSH
@Ta
/ 2013-02-13 /
样
/
源
直接使用函数不要付值
3
HYGSH
@Ta
/ 2013-02-13 /
样
/
源
或者写入前先将'替换为中文的',如果对'有特殊要求则可以将它替换为一个特殊的字符串输出时再替换回来
5
Sanonz
@Ta
/ 2013-02-13 /
样
/
源
这样呢?我没有试$insert_sql="insert into `chatinfo` (`talk`,`time`,`name`,`uid`) values ('{$talk}','{$time}','{$name}','{$user_id}')";
6
Sanonz
@Ta
/ 2013-02-13 /
样
/
源
表示我的不会
http://wap.wapdn.cn
7
洋
@Ta
/ 2013-02-13 /
样
/
源
用函数转义?PHP 手册说提交的数据默认转义了的
8
anylove
@Ta
/ 2013-02-13 /
样
/
源
@
HYGSH
,以前我也用转换的,但是老虎说过不用那样。
9
anylove
@Ta
/ 2013-02-13 /
样
/
源
@
Sanonz
,仍然不行
10
唯美无殇
@Ta
/ 2013-02-13 /
样
/
源
@
anylove
$insert_sql="insert into chatinfo(talk,time,name,uid)values("$talk","$time","$name","$user_id"")";
试试
11
唯美无殇
@Ta
/ 2013-02-13 /
样
/
源
@ anylove
$insert_sql='insert into chatinfo(talk,time,name,uid)values("$talk","$time","$name","$user_id")';
12
anylove
@Ta
/ 2013-02-13 /
样
/
源
@
Louis
,""中的是常量,不是变量
13
PGF_高峰
@Ta
/ 2013-02-13 /
样
/
源
你用的sqlite么? 把'符号转换成其他的字符串 输出的时候再替换出来 当然替换的字符串不能太常用了
14
PGF_高峰
@Ta
/ 2013-02-13 /
样
/
源
你用的sqlite么? 把'符号转换成其他的字符串 输出的时候再替换出来 当然替换的字符串不能太常用了
15
老虎会游泳
@Ta
/ 2013-02-15 /
样
/
源
@
anylove
,
mysql使用mysql_real_escape_string函数 ,
sqlite是sqlite_escape_string,
pdo用pdo::quote或者预处理。
16
老虎会游泳
@Ta
/ 2013-02-15 /
样
/
源
@
PGF_高峰
,你也来看看。
17
老虎会游泳
@Ta
/ 2013-02-15 /
样
/
源
@
洋
,php5起魔术引号默认关闭(某些空间打开了,特别麻烦,得手动去除,所以虎绿林有0wap/sub/strip_quotes_gpc.sub.php)。php5.4已经废除了这个糟糕的功能。 所以,你必须自己转义数据。
18
老虎会游泳
@Ta
/ 2013-02-15 /
样
/
源
@
anylove
,在使用pdo的预处理时,你不需要转义标识符代替的参数的引号。在其他任何情况下,必须转义,否则就是赤果果的sql注入点。
19
老虎会游泳
@Ta
/ 2013-02-15 /
样
/
源
@
Sanonz
@
方哥_不活跃
20
anylove
@Ta
/ 2013-02-15 /
样
/
源
已经用转义的弄好了
添加新回复
回复需要
登录
。
$insert_sql="insert into chatinfo(talk,time,name,uid)values("$talk","$time","$name","$user_id"")";
试试
$insert_sql='insert into chatinfo(talk,time,name,uid)values("$talk","$time","$name","$user_id")';
mysql使用mysql_real_escape_string函数 ,
sqlite是sqlite_escape_string,
pdo用pdo::quote或者预处理。