【问题标题】:Looking for a simple mySQLi class example with descriptions寻找一个带有描述的简单 mySQLi 类示例
【发布时间】:2010-11-11 14:25:48
【问题描述】:

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

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

【问题讨论】:

    标签: php mysql mysqli prepared-statement


    【解决方案1】:

    试试 DALMP:http://code.google.com/p/dalmp/ 支持预处理语句和许多缓存后端

    【讨论】:

      【解决方案2】:

      这是一个将内置查询计时添加到 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");
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 你好,这不是我的帖子,但如果你想分享你的 PDO 课程,我会很感兴趣
        【解决方案4】:

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

        (相当老了,但是 mysqli 扩展已经几年没有太大变化了,所以应该还可以)

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

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

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

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

          • 看起来很复杂的废话......无论如何感谢您的回答!
          猜你喜欢
          • 2011-10-12
          • 2017-05-31
          • 1970-01-01
          • 2012-07-28
          • 2022-01-15
          • 2011-06-21
          • 2011-04-20
          • 2012-02-13
          • 2019-06-22
          相关资源
          最近更新 更多