Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 执行查询时没有结果,也没有错误_Php_Mysql_Database_Mysqli - Fatal编程技术网

Php 执行查询时没有结果,也没有错误

Php 执行查询时没有结果,也没有错误,php,mysql,database,mysqli,Php,Mysql,Database,Mysqli,一切都很好。数据库和表的名称、列的名称等$username是正确的,并且存在于数据库中。但是,在运行该命令之后,如果我“警告”$dbuid,它将显示为0,$dbusername将显示为空。MySQLi不会抛出错误。(这就是为什么我要做if(!…)echo error;,看看它是否会在任何东西上抛出错误,但它工作得非常好。)我错在哪里 if(!$msmysqli = new mysqli("localhost","root","","ms")){ echo $msmysqli->con

一切都很好。数据库和表的名称、列的名称等$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();
你只需放弃你的结果就可以得到那一排。。。这就是为什么你的代码没有按预期工作!另一件需要牢记的事情是,对象(至少在php中)在运行时总是返回其实例!语句$msmysqli=newmysqli(…)永远不会是错误的!这就是为什么你应该检查你的连接,如图所示

$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();