Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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 MySQLi OOP绑定参数错误_Php_Mysql_Oop_Mysqli_Bind - Fatal编程技术网

Php MySQLi OOP绑定参数错误

Php MySQLi OOP绑定参数错误,php,mysql,oop,mysqli,bind,Php,Mysql,Oop,Mysqli,Bind,我从MySQLi开始,我从一个简单的select开始,它可以工作: $sql = "SELECT nombres, apellidos FROM users WHERE user = 'juan'"; $result = $con->query($sql); while($row = $result->fetch_object()){ print $row->nombres . '<br />'; print $row->apellidos .

我从MySQLi开始,我从一个简单的select开始,它可以工作:

$sql = "SELECT nombres, apellidos FROM users WHERE user = 'juan'";
$result = $con->query($sql);
while($row = $result->fetch_object()){
    print $row->nombres . '<br />';
    print $row->apellidos . '<br />';
}
$sql=“从user='juan'”的用户中选择nombres,apellidos;
$result=$con->query($sql);
而($row=$result->fetch_object()){
打印$row->nombres.“
”; 打印$row->apellidos。“
”; }
但是当我尝试使用准备好的语句时,没有显示结果。。。我做错了什么

$user = 'juan';
$sql = "SELECT nombres, apellidos FROM users WHERE user = ?";
$result = $con->prepare($sql);
$result->bind_param('s', $user);
$result->execute();

while($row = $result->fetch_object()){
    print $row->nombres . '<br />';
    print $row->apellidos . '<br />';
}
$user='juan';
$sql=“从user=?”的用户中选择nombres,apellidos”;
$result=$con->prepare($sql);
$result->bind_参数($s',$user);
$result->execute();
而($row=$result->fetch_object()){
打印$row->nombres.“
”; 打印$row->apellidos。“
”; }
使用fetch-in-prepared语句有点不同。mysqli编写的语句还有另一个fethcing API,您需要使用和才能正常工作

$result->bind_param('s', $user);
$result->execute();
$result->bind_result($nombres, $apellidos);

while($result->fetch()){
    print $nombres . '<br />';
    print $apellidos . '<br />';
}
$result->bind_参数('s',$user);
$result->execute();
$result->bind_result($nombres,$apellidos);
而($result->fetch()){
打印$nombres.“
”; 打印$apellidos。“
”; }
执行将返回一个
mysqli\u语句
对象。如果您想像处理
mysqli_结果
对象一样处理查询结果,则必须运行
$stmt->get_result()
将其转换为
mysqli_结果
对象,然后您可以像刚才一样使用while循环作为
mysqli_结果
对象进行处理

$user = 'juan';
$sql = "SELECT nombres, apellidos FROM users WHERE user = ?";
$stmt= $con->prepare($sql);
$stmt->bind_param('s', $user);
$stmt->execute();

$result = $stmt->get_result();

while($row = $result->fetch_object()){
    print $row->nombres . '<br />';
    print $row->apellidos . '<br />';
}
$user='juan';
$sql=“从user=?”的用户中选择nombres,apellidos”;
$stmt=$con->prepare($sql);
$stmt->bind_参数('s',$user);
$stmt->execute();
$result=$stmt->get_result();
而($row=$result->fetch_object()){
打印$row->nombres.“
”; 打印$row->apellidos。“
”; }
不幸的是,只有在安装了本机驱动程序mysqlnd时,此函数/方法才可用


->get_result()
如果此方法在您的环境中可用,则是另一个不错的选择@PatricioCarvajalH@PatricioCarvajalH.Ah是的,谢谢你提醒我,这并不总是可用的,补充了一条说明effect@RiggsFolly非常感谢。找到了这些有趣的链接:何时在mysql中使用bind\u result vs get\u result-->