PDO普通查询正常,但预处理语句无输出问题求助
PDO预处理语句错误排查与修正
你的预处理代码存在两个关键错误,导致无输出:
execute()参数格式错误:PDO的execute()方法要求参数以数组形式传入,直接传单个值12无法完成参数绑定,会导致SQL语句执行失败。fetch调用语法错误:fetch是PDOStatement类的方法,必须通过()调用才能获取结果,你遗漏了括号,导致$nn3只是方法的引用,而非查询返回的数据。
修正后的代码如下:
$stmt3 = $pdo->prepare("SELECT nick FROM users WHERE ID=?"); $stmt3->execute([12]); // 用数组传递参数 $nn3 = $stmt3->fetch(); // 调用fetch方法需加括号 echo $nn3["0"];
另外,建议开启PDO的错误提示,方便后续排查问题,可以在初始化PDO时添加错误模式:
$pdo = new PDO($dsn, $user, $pass, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ]);
内容的提问来源于stack exchange,提问作者Bodongo
相关产品推荐
相关产品推荐

