请问老师这段代码问题在哪里
<?php $dsn = "mysql:host=localhost;port=3306;dbname=test"; $dbName = "root"; $dbPWD = "root"; $pdo = new PDO($dsn, $dbName, $dbPWD); $pdo->exec("SET NAMES utf8"); $sql = "SELECT id,imgfile,info,width,height FROM images"; $sql .= " ORDER BY id DESC LIMIT :start,:length"; $stmt = $pdo->prepare($sql); $stmt->bindValue(":start",0); $stmt->bindValue(":length",9); $stmt->execute(); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); print_r($data);
查询出来是空数组
1
收起
正在回答
3回答
您好,抱歉是可以绑定的。但是需要指定bindvalue的第三个参数:
$stmt->bindValue(":start",0,PDO::PARAM_INT); $stmt->bindValue(":length",9,PDO::PARAM_INT);
第三个参数为:使用 PDO::PARAM_* 常量明确地指定参数的类型。
祝学习愉快!
雨之赞歌
2019-05-07 17:56:26
<?php try { $dsn = "mysql:host=localhost;prot=3306;dbname=test"; $dbName = "root"; $dbPWD = "root"; $pdo = new PDO($dsn, $dbName, $dbPWD, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]); $pdo->exec("SET NAMES utf8"); $sql = "SELECT id,imgfile,info,width,height FROM images ORDER BY id DESC LIMIT 0,9"; $stmt = $pdo->prepare($sql); // $stmt->bindValue(":start", 0); // $stmt->bindValue(":length", 9); $stmt->execute(); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); print_r($data); exit; } catch (Exception $e) { echo $e->getMessage(); }
为什么绑定参数就报错啊?
PHP常用技术与ThinkPHP5框架开发
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星