mysql预处理语句不执行_为啥我这个预处理语句执行不了呢

在尝试使用MySQL预处理语句时遇到执行失败的问题。代码中创建了新的mysqli连接,准备了SQL查询(select id, name, price, num, desn from shop where id>?),绑定了参数和结果,但当执行时发现预处理语句没有成功。尝试添加字段名的引号和使用var_dump检查对象,虽然对象显示正确,但执行时仍然出错。讨论中提出可能是$stmt->bind_param()的语法错误,建议改为$stmt->bind_param("i",$id);但问题仍未解决。" 81978745,7835369,Vue.js父子组件通信详解,"['前端开发', 'Vue', '组件通信']
摘要由CSDN通过智能技术生成

$mysqli= new mysqli("localhost","root","123456","xsphpdemo");

if(mysqli_connect_errno()){

echo "连接失败

".mysqli_connect_error();

}

$stmt=$mysqli->prepare("select id name price num desn from shop where id>?");

$stmt->bind_param("i",$id);

$stmt->bind_result($id,$name,$price,$num,$desn);

$id="10";

$stmt->execute();

$stmt->store_result();

while($stmt->fetch()){

echo "$id -- $name -- $price -- $num -- $desn

";

}

echo $stmt->num_rows;

$stmt->close();

执行Var_dump("select id name price num desn from shop where id>?")

布尔型值是假

好像$mysqli->prepare()语句执行不成功,不知道为啥

回复讨论(解决方案)

"select `id`, `name`, `price`, `num` ,`desn` from shop where id>?"

echo $stmt->error; 有错误信息吗

echo $stmt->error; 有错误信息吗

没有,我按楼上的加了引号,加入var_dump($stmt)之后显示是对象了,可是一执行错误又变成------>

echo $stmt->error; 有错误信息吗

没有,我按楼上的加了引号,加入var_dump($stmt)之后显示是对象了,可是一执行错误又变成------>

我没用过mysqli,但你这句是不是错了

$stmt->bind_param("i",$id);

是不是应为

$stmt->bind_param(1,$id);

字段没有隔开

$stmt=$mysqli->prepare("select id, name, price, num, desn from shop where id>?");

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值