【求助】mysql_real_escape_string()的用法

kyzy_yy_pm 2011-07-25 09:20:43
$db = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$name = 'zhangsan"';
$db->query('select * from test where name = "' . mysql_real_escape_string($name) . '"');


/*
结果:

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO)

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established



$db = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$name = 'zhangsan"';
$db->query('select * from test where name = "' . mysql_real_escape_string($name, $db) . '"');


/*
结果:

Warning: mysql_real_escape_string() expects parameter 2 to be resource, object given
*/


我的mysql实实在在的连上了,不知道这个到底该如何使用呢?
...全文
474 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyzy_yy_pm 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xuzuning 的回复:]
PDO 已经提供了 quote 方法
[/Quote]

怪我没看仔细,原来在pdo中用quote代替了那个方法了
kyzy_yy_pm 2011-07-25
  • 打赏
  • 举报
回复
谢谢1楼,在mysql_connect中完全没有问题,值发生在PDO连接的数据库中,差了下baidu、google什么的但是依然没有个正确答案
xuzuning 2011-07-25
  • 打赏
  • 举报
回复
你怎么在混用 PDO 和 mysql函数集呢?

PDO 已经提供了 quote 方法

再说虽然你现在传给 PDO 的 dsn 是mysql,但下次出给他的是 mssql 那由如何转义呢?
黄袍披身 2011-07-25
  • 打赏
  • 举报
回复
两个星星的问题,那只有让大哥来回答你的问题了

手册上是这么说的
本函数将 unescaped_string中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()。
<?php
$item = "Zak's and Derick's Laptop";
$escaped_item = mysql_real_escape_string($item);
printf ("Escaped string: %s\n", $escaped_item);
?>

以上例子将产生如下输出:
Escaped string: Zak\'s and Derick\'s Laptop

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧