Php MySQLi OOP绑定参数错误
我从MySQLi开始,我从一个简单的select开始,它可以工作: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 .
$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-->