我正在尝试扩展 mysqli 类以创建一个辅助类,该类将抽象出一些复杂性。我想要完成的主要事情之一是利用准备好的语句。
我真的不知道从哪里开始,或者如何在一个类中正确处理输入和输出。另一个问题是我无法在使用准备语句时将数据输出为数组。
我真的可以用一个简单的例子来指明正确的方向。
最佳答案
查看 Zend_Db 的实现,特别是 Zend_Db_Select
.事实上,您可能只是选择使用它而不是开发自己的。示例:
//connect to a database using the mysqli adapter
//for list of other supported adapters see
//http://framework.zend.com/manual/en/zend.db.html#zend.db.adapter.adapter-notes
$parameters = array(
'host' => 'xx.xxx.xxx.xxx',
'username' => 'test',
'password' => 'test',
'dbname' => 'test'
);
try {
$db = Zend_Db::factory('mysqli', $parameters);
$db->getConnection();
} catch (Zend_Db_Adapter_Exception $e) {
echo $e->getMessage();
die('Could not connect to database.');
} catch (Zend_Exception $e) {
echo $e->getMessage();
die('Could not connect to database.');
}
//a prepared statement
$sql = 'SELECT * FROM blah WHERE id = ?';
$result = $db->fetchAll($sql, 2);
//example using Zend_Db_Select
$select = $db->select()
->from('blah')
->where('id = ?',5);
print_r($select->__toString());
$result = $db->fetchAll($select);
//inserting a record
$row = array('name' => 'foo',
'created' => time()
);
$db->insert('blah',$row);
$lastInsertId = $db->lastInsertId();
//updating a row
$data = array(
'name' => 'bar',
'updated' => time()
);
$rowsAffected = $db->update('blah', $data, 'id = 2');
关于php - 如何使用准备好的语句制作适当的 mysqli 扩展类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1384191/