php 中如何进行mysql参数化查询?

madpc 2009-05-19 08:28:26
类似这种写法

cmd=new sqlcmd("select * from foo where id=?id",conn)
cmd.addParam("id",123)
rs=cmd.exec()

在mysql中如何写? 请注意,要纯粹的参数化查询, 而不是通过字符串连接实现的
...全文
1363 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
virusswb 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jakey9826 的回复:]
PHP code
$query = sprintf("SELECT * FROM Users where UserName='%s' and Password='%s'",
mysql_real_escape_string($Username),
mysql_real_escape_string($Password));……
[/Quote]

正确实现。
RUCYGAMP 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jakey9826 的回复:]
PHP code
$query = sprintf("SELECT * FROM Users where UserName='%s' and Password='%s'",
mysql_real_escape_string($Username),
mysql_real_escape_string($Password)……
[/Quote]





太感谢了。
madpc 2009-05-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jakey9826 的回复:]
第一个例子最终生成sql语句.
至于mysqli这个类,如果楼主有意,可以查看一下c++源码.
至少这个是你所需要的.呵呵.
[/Quote]

第一个例子在wiki里看到了,放在那里真觉得不太合适

第二种是我想要的,相当吻合了
fen115573167 2009-05-21
  • 打赏
  • 举报
回复
不太清楚
,顶。
程序猿之殇 2009-05-21
  • 打赏
  • 举报
回复
$query = sprintf("SELECT * FROM Users where UserName='%s' and Password='%s'", 
mysql_real_escape_string($Username),
mysql_real_escape_string($Password));
mysql_query($query);
或是

$db = new mysqli("localhost", "user", "pass", "database");
$stmt = $mysqli -> prepare("SELECT priv FROM testUsers WHERE username=? AND password=?");
$stmt -> bind_param("ss", $user, $pass);
$stmt -> execute();


第一个例子最终生成sql语句.
至于mysqli这个类,如果楼主有意,可以查看一下c++源码.
至少这个是你所需要的.呵呵.
madpc 2009-05-21
  • 打赏
  • 举报
回复
至于为什么要参数化查询,请看 http://zh.wikipedia.org/w/index.php?title=%E5%8F%83%E6%95%B8%E5%8C%96%E6%9F%A5%E8%A9%A2&variant=zh-cn
madpc 2009-05-21
  • 打赏
  • 举报
回复
其实我要问的主要就是在php中如保实现上面所说那种参数化查询
madpc 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 coastcdl 的回复:]
和mysql无关.
自己写一个封装起来或者运用现成的.

其实最终都转化成sql语句,呵呵.
[/Quote]

举个例子, ado 是跟数据库引擎有关的,不同数据库传参方式不一样(指写法), 至于这种差异是在哪个层次引起的我不太清楚.

另外说最终都转化成sql语句,这也不是我要的效果, 举例的话odbc参数化查询的方式就类似于调用存储过程时的传参,
跟字符串连接方式是不同的
程序猿之殇 2009-05-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 madpc 的帖子:]
类似这种写法

cmd=new sqlcmd("select * from foo where id=?id",conn)
cmd.addParam("id",123)
rs=cmd.exec()

在mysql中如何写? 请注意,要纯粹的参数化查询, 而不是通过字符串连接实现的
[/Quote]
和mysql无关.
自己写一个封装起来或者运用现成的.

其实最终都转化成sql语句,呵呵.
coastcdl 2009-05-19
  • 打赏
  • 举报
回复
参考手册 PDO部分
askok 2009-05-19
  • 打赏
  • 举报
回复
jf
自己封装一个数据库类

21,886

社区成员

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

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