gpt4 book ai didi

php - 执行查询没有结果也没有错误

转载 作者:搜寻专家 更新时间:2023-10-30 20:42:32 25 4
gpt4 key购买 nike

一切都很好。数据库和表的名称,列的名称等。 $username 很好并且存在于数据库中。然而,在此运行之后,如果我“警告”$dbuid,它会显示为 0,而 $dbusername 会显示为空。 MySQLi 不会抛出任何错误。 (这就是我执行 if(! .. ) echo error; 的原因,以查看它是否会在任何事情上引发错误,但它工作得很好。)我哪里出错了?

if(!$msmysqli = new mysqli("localhost","root","","ms")){
echo $msmysqli->connect_error;
}
if(!$stmt = $msmysqli->prepare("SELECT id,name,password FROM accounts WHERE name=?")){
echo $msmysqli->error;
}
if(!$stmt->bind_param("s",$username)){
echo $stmt->error;
}
if(!$stmt->execute()){
echo $stmt->error;
}
if(!$stmt->bind_result($dbuid,$dbusername,$dbpassword)){
echo $stmt->error;
}
$stmt->close();

最佳答案

你只是忘记了 fetch你的结果得到了排...这就是为什么你的代码没有按预期工作的原因!另一件要记住的事情是,一个对象,至少在 php 中,在 constructed 时总是返回它的实例。 !语句 $msmysqli = new mysqli(...) 永远不会是假的!这就是为什么您应该如图所示检查您的连接!

$msmysqli = new mysqli("localhost","root","","ms");

if ( $msmysqli->connect_errno ) echo $msmysqli->connect_error;

if( $stmt = $msmysqli->prepare("SELECT id,name,password FROM accounts WHERE name=?") ) {
$stmt->bind_param("s",$username);
$stmt->execute();
$stmt->bind_result($dbuid,$dbusername,$dbpassword);
$stmt->fetch();
$stmt->close();
} else {
echo $msmysqli->error;
}

$msmysqli->close();

关于php - 执行查询没有结果也没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13595996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com