我尝试编写自己的数据库类。我有一些问题。
当我运行它时,会出现这些错误。
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);
}
}
有什么问题?我不明白。谢谢你(抱歉我的语法)。
答案 0 :(得分:2)
任何时候你在mysql错误消息中看到“boolean given”,这意味着某些先前的mysql函数调用失败,返回一个布尔值为FALSE的值。您正尝试在当前的mysql调用中使用该布尔值false,并获取此消息。
您的代码中没有错误处理,这意味着那些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...
}
您如何处理错误取决于您 - 在这种情况下,它只会中止脚本并告诉您原因。