【发布时间】:2011-04-13 03:46:31
【问题描述】:
假设我有一个函数
function fetchAll(){
$args = func_get_args();
$query = array_shift($args);
$query = str_replace("%s","'%s'",$query);
foreach ($args as $key => $val) {
$args[$key] = mysql_real_escape_string($val);
}
$query = vsprintf($query, $args);
if (!$query) return FALSE;
$res = mysql_query($query);
if (!$res) {
trigger_error("db: ".mysql_error()." in ".$query);
return FALSE;
}
$a = array();
while($row = mysql_fetch_assoc($res)) $a[]=$row;
return $a;
}
然后像这样使用它
$a=$db->fetchAll("SELECT * FROM users WHERE status=%s LIMIT %d,%d",$status,$start,$num);
如何使用 PDO 重写它?
我能找到的每个示例都只显示了如何直接绑定参数。我应该传递变量类型及其值吗?或者让这个调用总是 4 行 - 3 绑定和执行?
【问题讨论】: