请问老师这段代码问题在哪里
<?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 星