V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
catfan
V2EX  ›  PHP

[很重要]调查一下,大家在PHP中用什么框架或方式来使用SQL数据库的?

  •  
  •   catfan · 2013-02-17 13:47:32 +08:00 · 6822 次点击
    这是一个创建于 4289 天前的主题,其中的信息可能已经有所发展或是发生改变。
    具体来说就是在PHP中用什么方式来连接数据库来实现数据的查询,插入,更新,删除等操作。

    最基本的应该就是直接用mysql_query传递SQL语句吧:
    mysql_query("SELECT name FROM days WHERE uid=1");

    或好一点的应该就是使用内置的mysqli_query或者PDO来处理:
    mysqli_query("SELECT name FROM days WHERE uid=1");

    $database = new PDO();
    $database->query("SELECT name FROM days WHERE uid=1");

    还是使用某些PHP框架?框架的名称是什么?觉得如何?

    还是自己亲手写一个连接数据库的小框架之类的?

    之前查了一下,貌似这类的开源框架并不多呢。不知大家的使用情况是如何的。
    24 条回复    1970-01-01 08:00:00 +08:00
    shiny
        1
    shiny  
       2013-02-17 13:54:45 +08:00
    自己封装一个简单的数据库查询类,封装常用的功能(例如使用%s、%d来格式化并避免注入),以及自动读取配置文件、autoload、单例模式等。

    并在此基础上写个简单的ActiveRecord的ORM功能,简单语句可以使用。
    fork3rt
        2
    fork3rt  
       2013-02-17 13:57:06 +08:00
    我一般都是用AR模式来操作数据库的。 具体实现方法可以参考 CanPHP 里面的 cpModel.class.php (挺不错的学习型框架)
    august
        3
    august  
       2013-02-17 13:57:51 +08:00
    CI 的 Active Record

    Drupal 的算不算
    insraq
        4
    insraq  
       2013-02-17 14:09:33 +08:00
    Doctrine, Propel, Redbean
    chuck911
        5
    chuck911  
       2013-02-17 14:15:54 +08:00
    推荐这个 http://j4mie.github.com/idiormandparis/

    特别是Idiorm,轻巧强大

    $user = ORM::for_table('user')
    ->where_equal('username', 'j4mie')
    ->find_one();

    $user->first_name = 'Jamie';
    $user->save();
    aveline
        6
    aveline  
       2013-02-17 14:18:19 +08:00
    PDO
    xing393939
        7
    xing393939  
       2013-02-17 14:25:18 +08:00
    thinkphp,如果php是建网站的草根语言,那么tp算的上是php中的草根框架,在现在大多数公司要求“quick and dirty”的开发需求下,tp还是很不错的
    catfan
        8
    catfan  
    OP
       2013-02-17 16:44:26 +08:00
    还有么?
    xsharp
        9
    xsharp  
       2013-02-17 16:46:34 +08:00
    Zend_Db
    doctrine
    saharabear
        10
    saharabear  
       2013-02-17 16:59:39 +08:00
    doctrine

    或者直接使用pdo
    twm
        11
    twm  
       2013-02-17 17:00:42 +08:00
    当然是用框架拉,推荐symfony2 laravel ci
    MayLava
        12
    MayLava  
       2013-02-17 18:29:53 +08:00
    我在PHP里用的这个
    http://redbeanphp.com/
    catfan
        13
    catfan  
    OP
       2013-02-18 15:18:00 +08:00
    还有么?名气比较大的是那个?
    RobinFai
        14
    RobinFai  
       2013-02-18 15:31:52 +08:00
    个人比较喜欢 Yii的CActiveRecord,话说 2.0都一年了,还是遥遥无期。
    holystrike
        15
    holystrike  
       2013-02-18 16:07:55 +08:00
    redbean
    快速项目非常好用
    bufannao
        16
    bufannao  
       2013-02-18 17:33:05 +08:00 via Android
    kohana3
    subpo
        17
    subpo  
       2013-02-18 17:41:14 +08:00
    speedphp 快速开发很好用,model里面写好一对多 多对多
    比如我要查询全部信息,还要分类好,直接
    spclass('db_xxx')->splinker()->sppager()->findall('query')
    catfan
        18
    catfan  
    OP
       2013-02-18 21:07:51 +08:00
    @bufannao 这是日本开发的?
    crossmaya
        19
    crossmaya  
       2013-02-20 19:57:51 +08:00
    @catfan 从哪刊出来的??kohana3不错
    geo5078
        20
    geo5078  
       2013-02-22 08:44:24 +08:00
    Mutoo
        21
    Mutoo  
       2013-02-22 08:59:35 +08:00
    ORM模式都挺好用,不过我只小试过国产的 thinkphp 在 sae 上开发。你可以参考一下 thinkphp 手册

    http://doc.thinkphp.cn/manual/features.html

    http://doc.thinkphp.cn/manual/curd.html
    dodogod
        22
    dodogod  
       2013-02-27 02:38:58 +08:00 via iPhone
    推荐这个 http://j4mie.github.com/idiormandparis/

    特别是Idiorm,轻巧强大

    ======
    同推荐,支持php5.2哦
    picasso250
        23
    picasso250  
       2013-03-27 23:38:11 +08:00
    看了上面的回复,我把我自用的一个开源出来了。现在看来和 paris 有点像,不过是受到 Doctrine 的启发。之前基于 PDO 的,刚刚换成了 LazyPHP 的 db 类了,可能会有很多 bug。
    https://github.com/picasso250/LazyPHP-AR
    konakona
        24
    konakona  
       2013-05-05 21:11:56 +08:00
    thinkphp的ORM
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   966 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:40 · PVG 05:40 · LAX 13:40 · JFK 16:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.