我用我自己的類數據庫查詢,擴展庫MySQLi:我如何在PHP中抽象mysqli準備語句?
class iDatabase extends mysqli
{
public $errorMsg;
private $totalQueries;
private $stmt;
public function __construct()
{
parent::__construct('localhost', 'asd', 'asd', 'asd');
if (mysqli_connect_errno())
{
$this->errorMsg = 'Could not connect to server.<br /><i>' . mysqli_connect_error() . '</i>.';
return;
}
parent::query('SET NAMES utf8');
}
}
但是執行查詢並取回結果時,我遇到麻煩了。我正在使用準備好的語句,但價值和結果的約束方式讓我感到困惑。一些研究後,我想出了這個功能,它接受查詢和參數:
public function psQuery($query, $params)
{
$this->stmt = parent::prepare($query);
call_user_func_array(array($this->stmt,'bind_param'), $params);
$this->stmt->execute();
}
我的問題是,什麼是得到的結果,從這一回的最佳方式?我需要使用bind_result,然後獲取每一行,然後關閉語句。我寧願只爲每行獲得一個關聯數組 - 這可能嗎?
+1幫助創建我有史以來最喜歡的圖書館之一。 – karim79 2009-09-07 12:40:14
我在哪裏可以找到代碼?我看了這裏,但它只是文檔,沒有代碼:http://framework.zend.com/apidoc/core/Zend_Db/Statement/Zend_Db_Statement_Mysqli.html – DisgruntledGoat 2009-09-07 13:12:30
@DisgruntledGoat:當然,你可以下載它,否則你可以瀏覽在線來源http://framework.zend.com/code/browse/Standard_Library/standard/trunk/library/Zend – 2009-09-07 15:32:19