【问题标题】:Useful PHP database class有用的 PHP 数据库类
【发布时间】:2009-08-02 11:30:23
【问题描述】:

我正在开发一个小型 PHP 网站。我需要一个易于配置和使用的 MySql 数据库访问类。

不需要是一个完整的框架,我只需要一个最大值。几节课。

【问题讨论】:

  • 从 Zend 框架中,您真的可以随心所欲。甚至只有 Zend_Db!当然还有一个 mysql pdo 适配器。

标签: php mysql database


【解决方案1】:

PDO 对我来说非常有用,即使它不像 PEAR::MDB2 那样完全成熟的库。

PDO 是 PHP5 的编译扩展,因此也有一点性能优势。

【讨论】:

  • 在我的下一个项目中,我也会考虑这个库。
【解决方案2】:

ADODb 很容易使用,值得考虑。一些说明性示例:

  //connect
  $dsn = 'mysql://user:pwd@localhost/mydb'; 
  $db = ADONewConnection($dsn);  

  //get a single value     
  $value=$db->GetOne("select foo from bar where x=?", array($x));

  //get a row
  $row=$db->GetRow("select * from bar where x=?", array($x));

  //easy insert example
  $record=array("id"=>1, "foo"=>"bar");
  $db->AutoExecute("table", $record, "INSERT");  

【讨论】:

  • 我发现 ADODb 是最容易设置的。
  • 您好,Dixon 先生,但是这个库需要一些好的文档。你知道我可以找到一些帮助的任何网络资源吗?我尝试使用这个库为与数据库相关的任务创建一个类,但做得不好。
  • 我发现文档没问题(见phplens.com/lens/adodb/docs-adodb.htm
【解决方案3】:

如果您对它特定于 MySql 感到满意,MySqli 是默认选择。

【讨论】:

    【解决方案4】:

    我认为PEAR::MDB2 是您正在寻找的。​​p>

    【讨论】:

      【解决方案5】:

      如果您没有真正的特殊需求,我建议您查看PDO,它与 PHP >= 5.1 捆绑在一起。

      它完全面向对象,便于数据库引擎之间的兼容性;并且它作为 C 扩展集成在 PHP 中,可能比在 PHP 中开发的等价物要快一些。

      您还可以查看mysqli 扩展,它提供了面向函数和面向对象的接口。
      但我想我更愿意去 PDO,我想......


      而且,既然您正在花费(投资 ;-))一些时间寻找新东西,您可以查看准备好的语句:mysqliPDO 都支持它们,并且非常适合(除其他外) ) 安全原因(无需担心转义数据以防止 SQL 注入)


      如果你说你需要一个完整的 ORM 解决方案,我会指给你Doctrine,这确实是一个很棒的 ORM 框架;但这可能对您的需求来说太过分了......

      【讨论】:

      • PDO 不利于 RDBMS 之间的兼容性。它缺少隐藏诸如日期时间在所有 RDBMS 中的不同处理方式等事物之间的差异的构造。 PDO 仍然是访问任何一个 RDBMS 的不错选择。但如果需要跨 RDBMS 支持,则它是不完整的。
      【解决方案6】:

      您可以从Zend Framework 尝试Zend_Db。稍后您可能会包含来自 ZF 的模式组件。

      【讨论】:

        【解决方案7】:

        我偶尔用过this,还不错! (并且有一个很棒的自动斜线功能),它很容易定制而且很小,但它有我需要的一切。您可能可以相对容易地扩展它以支持缓存或任何您想要的。

        祝你好运找到最适合你的东西。 :)

        【讨论】:

          【解决方案8】:

          还有 digg 的 PDB,它是一个简单的 PDO 包装器或者可以从 http://code.google.com/p/digg/wiki/PDB 下载的东西

          【讨论】:

            【解决方案9】:

            最简单轻量级的db类是

            http://code.google.com/p/edb-php-class/

             <?php
                $result = $db->q("select * from `users`limit 3");
            
                foreach($result as $a){
                        $a = (object) $a;
                        echo $a->id.' '.$a->name.' '.$a->url.' '.$a->img.'</br>';
                }
            
            
                $result = $db->line("select * from `users` where id = '300' limit 1");
                echo $result['name']; 
                echo $result['surname']; 
            
            
            
                $name = $db->one("select name from `ilike_pics` where id = '300' limit 1");
                echo $name;
                ?>
            

            【讨论】:

            • 哇,我会测试一下,希望它有效。看起来真不错。
            【解决方案10】:

            +1 用于 PHP 的 PDO(PHP 数据对象)扩展。我将它与一个非常方便的扩展 PDO 的数据库类一起使用。您可以在 Google 的 Project Hosting 上找到这个开源项目,地址为 http://code.google.com/p/php-pdo-wrapper-class

            【讨论】:

              【解决方案11】:

              我建议使用PHP-MySQLi-Database-Class,它利用 MySQLi 和准备好的语句(这意味着您将免受 SQL 注入)。类有据可查。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-08-01
                • 1970-01-01
                • 1970-01-01
                • 2014-09-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-01-08
                相关资源
                最近更新 更多