3

我正在寻找一个在 PHP5 中扩展 mySQLi 类的类的简单但实用的示例。我也对存储过程感兴趣。基本上我需要的是一个实用和可用的类的例子。我通过例子学得最好,不幸的是我找不到任何网站或书籍似乎有一个非常可靠但简单的例子。我看到的所有示例都太复杂了,所以我无法理解,或者它们太简单了,我还不如立即实例化该类并在那里内联。如果有人可以向我提供这样的示例并解释发生的事情,那就太好了。我的长期目标是拥有一个我可以实例化的类来处理数据库的身份验证,然后获取我的 SQL 语句并以变量的形式提供输出。

如果有人愿意花时间帮助我,将不胜感激!,谢谢

4

5 回答 5

1

你检查了PHP PEAR MDB2吗? http://pear.php.net/package/MDB2

它不是那么简单,它是 php 恕我直言中最好的 DAL ......

于 2009-07-17T06:28:18.977 回答
1

关于mysqli,你可以看看那些文章:

(很旧,但是 mysqli 扩展几年来没有太大变化,所以应该还可以)

你也可以看看PDO,从 PHP 5.1 开始就包含了;它是一个面向对象的 API,用于访问多个数据库引擎(您不使用 mysqli_query、pg_query、oci8_query 或类似的东西;只有 $pdo->query - 好吧,您的 SQL 必须兼容,但这是另一个问题;- ( )

另一种方法是使用 ORM,例如Doctrine

它不是一个扩展 MySQLi 的类,而是一个完整的框架来抽象 DB 引擎 - 使用它,您编写一个模式来描述您的 DB 结构,然后使用“伪 SQL”语言发送查询;或者只是(在大多数情况下)抽象 SQL 的面向对象的 API。

一开始它有点难用,但真的很强大和有用(我认为,对于许多类型的项目来说,这对生产力来说还不错)

于 2009-07-18T19:44:09.697 回答
1

试试 DALMP:http ://code.google.com/p/dalmp/是支持准备好的语句和许多缓存后端

于 2010-10-28T14:48:36.053 回答
0

这是一个将内置查询计时添加到 mysqli 类的简单示例。

这假设您已经定义了一个实现 iTimer 接口的“MyTimer”类。iTimer 类以最简单的形式记录指定 $key 的开始和停止时间(使用 microtime() 或 getrusage() 或其他)。

<?php
interface iTimer
{
    public function start($key);
    public function stop($key);
}

class mysqlp extends mysqli
{
    function query($query, $resultmode)
    {
        $timer = MyTimer::getInstance();
        $timer->start('mysqli::query');
        $result = parent::query($query, $resultmode);
        $timer->stop('mysqli::query');
        return $result;
    }
}

#usage
$mysqli = new mysqlp("localhost", "my_user", "my_password", "world");
$results = $mysqli->query("SELECT id FROM foo");
于 2009-07-20T23:44:04.440 回答
0

有点离题,但为什么是 MySQLi?PDO 好多了,现在被认为是事实上的 PHP 标准。我在一两年前写了一个简单的 PDO 类,如果有兴趣,我可以给你链接。

于 2009-07-20T20:25:50.473 回答