Chinaunix首页 | 论坛 | 博客
  • 博客访问: 704085
  • 博文数量: 143
  • 博客积分: 1554
  • 博客等级: 上尉
  • 技术积分: 1767
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-10 11:50
文章分类

全部博文(143)

文章存档

2017年(2)

2016年(5)

2015年(16)

2014年(25)

2013年(27)

2012年(16)

2011年(52)

分类: PHP

2014-11-20 12:51:24

第一、MySQL中的LIMIT关键字不能使用预处理

错误的:以下语句在LIMIT中使用了':start',':num'预处理绑定参数方式导致取不出数据,但不会报错。

prepare($sql);
$param = array(':start'=>$start,':num'=>$num);
$stmt->execute($param);
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($data); 
?>

正确的:直接拼出LIMIT语句,结果正常

prepare($sql);
//$param = array(':start'=>20,':num'=>10);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($data); 
?>

第二、MSSQL中TOP关键字不能使用预处理

错误的:在TOP关键字中使用了':top'预处理绑定参数方式导致取不出数据,同样也不会报错

prepare($sql);
$param = array(':top'=>$top);
$stmt->execute($param);
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($data); 
?>

正确的:直接拼出TOP关键字语句,结果能取出数据

prepare($sql);
//$param = array(':top'=>$top);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($data); 
?>

阅读(1291) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~