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类重写。很简单。现在我将为错误编写代码。谢谢。