开发者社区> 问答> 正文

php 预处理查询参数这样写怎么错误了?

在数据库“表明”查询姓名为“名字”,输出相关a,b两个字段的数据;为什么在bind_result 行出现


Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement

$stmt->bind_result($res);改成

$stmt->bind_result($a,$b)时就可以成功了,。

为什么$res这个参数传递错误?怎么改呢?

$sql="SELECT a,b FROM 表名 WHERE name=? ";

select("true",$sql,"s","名字",'$a,$b');


function select($isclude,$sql,$s,$value,$res){
if ($isclude=="true"){
require("config.php");
$cn = new mysqli(HOST,USER,PASS,DBNAME);
$cn->query("set names 'utf8'");
}
 $sql=$sql;
 $stmt=$cn->prepare($sql) or die($cn->error);
$stmt->bind_param($s,$value);
$stmt->bind_result($res);
$stmt->execute();
while($stmt->fetch()){
echo $a;
 }
$stmt->free_result();
$stmt->close();
}

展开
收起
小旋风柴进 2016-03-11 15:39:34 2323 0
1 条回答
写回答
取消 提交回答
  • select("true",$sql,"s","名字",'$a,$b');

    这个函数调用 '$a,$b'参数是一个字符串。

    2019-07-17 18:59:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载