Php mysqli准备了expect参数?

Php mysqli准备了expect参数?,php,mysqli,Php,Mysqli,我试图编写自己的数据库类。我有一些问题 当我运行它时,它会给出这些错误 Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in /Users/emrecetin/www/ayrox/m/db.php on line 75 Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolea

我试图编写自己的数据库类。我有一些问题

当我运行它时,它会给出这些错误

Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in /Users/emrecetin/www/ayrox/m/db.php on line 75

Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolean given in /Users/emrecetin/www/ayrox/m/db.php on line 76

Warning: mysqli_stmt_bind_result() expects parameter 1 to be mysqli_stmt, boolean given in /Users/emrecetin/www/ayrox/m/db.php on line 77

Warning: mysqli_stmt_fetch() expects parameter 1 to be mysqli_stmt, boolean given in /Users/emrecetin/www/ayrox/m/db.php on line 78
在这些线路上

mysqli_stmt_bind_param($sor, 's', $hede);
mysqli_stmt_execute($sor);
mysqli_stmt_bind_result($sor, $bas);
mysqli_stmt_fetch($sor);
我将给出数据库类的简短版本。它不完全是,我只写我所使用的

class db{

    public $durum;
    protected $server = 'localhost'; 
    protected $suser = 'root'; 
    protected $spass = 'root';
    public $db = 'members'; 

    public $durum; // mysqli durumu
    public $sor; // mysql_query ile birleştirilen hali
    public $kacsonuc;

    function db(){
        $this->durum = mysqli_connect($this->server,$this->suser,$this->spass);
        $this->dbchoose($this->db)
    }

    function dbchoose($db){
        if(!mysqli_select_db($this->durum,$db)){ 
            $this->errors[] = 'Database cant choose';
            $this->hata=True;
        }

    function see(){
        $id = 'select * from uyeler where id=?';
        $sor = mysqli_prepare($this->durum, $id);
        $hede = '3';
        mysqli_stmt_bind_param($sor, 's', $hede);
        mysqli_stmt_execute($sor);
        mysqli_stmt_bind_result($sor, $bas);
        mysqli_stmt_fetch($sor);
    }

}
有什么问题?我听不懂。谢谢你(对我的语法感到抱歉)。

每当你在mysql错误消息中看到“boolean given”时,就意味着之前的某个mysql函数调用失败,返回一个boolean FALSE值。您试图在当前mysql调用中使用该布尔值false,并获取此消息

您的代码中没有错误处理,这意味着这些错误值将在您的代码中传播,并随地抛出这些错误

至少,您的代码应该是这样的,无论您在哪里调用mysql/mysqli:

function see(){
    $id = 'select * from uyeler where id=?';
    $sor = mysqli_prepare($this->durum, $id);
    if ($sor === FALSE) {
        die(mysqli_error($this->durm));
    }
    etc...
}

如何处理错误取决于您自己——在这种情况下,它只需中止脚本并告诉您原因。

编辑:有问题,请粘贴到此处:当我这样做时,一切都会正常。您最好记录实际的错误消息。说有问题是好的,但不确切地说问题是什么,在调试时是毫无用处的。很像汽车上的检查引擎灯。要么你的变速器在2英里后的路上掉了,要么你忘了拧紧油门。谢谢。我会这样做的。但我真的不能理解这一点:没有问题。连接是可以的,选择数据库是可以的。但当我写准备时有问题。但再次连接并选择运行。真正的问题在哪里。谢谢。我解决了问题。(我发送了链接问题的评论)。我解决了问题。我用mysqli类重写。很简单。现在我将为错误编写代码。谢谢。