我有下一个PHP代码:
<?php
mysqli_report(MYSQLI_REPORT_ALL);
$mysqli = new mysqli("localhost","mybd","mypass");
if ($mysqli->connect_errno) { echo "Error connect<br/>"; }
else {
$mysqli->select_db("database1");
if ($result = $mysqli->query("SELECT DATABASE()")) {
$row = $result->fetch_row();
printf("Default database is %s.\n", $row[0]); // shows correct database selected
$result->close();
}
$sentencia = $mysqli->prepare("select pass from users Where name ='ronald'");
echo "Prepare error:".$mysqli->error."<br/>";
if (!$sentencia) echo "<br/>sentencia is null<br/>";
if ($sentencia->execute)
{
$sentencia->bind_result($cpass);
$sentencia->fetch();
echo "Passwd:".$cpass."<br/>";
$con="checkpass";
if (($con!=$cpass) && (md5($con)!=$cpass))
{
echo "OK<br/>";
}
else echo "NO OK<br/>";
}
else echo "<br/>Error execute: ".$mysqli->error;
}
mysqli_report(MYSQLI_REPORT_OFF);
?>
问题是: - $ mysqli-&gt;错误没有显示任何内容。没错。总是空字符串。 - $ sentencia-&gt;执行始终返回null,然后始终回显“错误执行:”,但没有关于错误的信息。
选择的数据库显示确定。它选择了正确的数据库。这是一个例子。真的这个名字是用“$ sentencia-&gt; bind_param(”s“,$ user)传递的;”但有了这个,我得到了“无对象”的apache错误。 我不知道为什么会这样。检查SQL并且确定。 感谢。
答案 0 :(得分:2)
不应该执行功能也不属性? http://php.net/manual/en/mysqli-stmt.execute.php
if ($sentencia->execute())
{
}