php - 如何使用准备好的语句制作适当的 mysqli 扩展类?

标签 php sql mysql class mysqli

我正在尝试扩展 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/

相关文章:

PHP PDO : Why does Inserting NULL yields to 0

c# - 数据库双连接关系插入问题

java - 为 MySQL 创建简单客户端的最简单方法是什么?

MySQL 外键 - 创建表时出现错误 150

php - 从表格中选择一个特定的单元格

mysql - 我们可以为一个外键引用两个不同的表吗?

PHP 制作一个简单的计算器 - 代码不起作用

php - 隐藏javascript不在浏览器中显示

php - 域名的简单正则表达式

sql - 将值连接成一行