分类: 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); ?>