mysqli->执行get错误但不输出错误

时间:2013-04-26 10:22:14

标签: php mysqli execute

我有下一个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并且确定。 感谢。

1 个答案:

答案 0 :(得分:2)

不应该执行功能也不属性? http://php.net/manual/en/mysqli-stmt.execute.php

if ($sentencia->execute())
{

}