2009-08-02 38 views
8

Tôi đang làm việc trên một trang web PHP nhỏ. Tôi cần một lớp truy cập cơ sở dữ liệu MySql dễ cấu hình và làm việc với nó.Lớp cơ sở dữ liệu PHP hữu ích

Không cần phải là một khung làm việc đầy đủ, tôi chỉ cần tối đa. vài lớp.

+1

Từ khung công tác Zend, bạn thực sự có thể thực hiện những gì bạn muốn. Thậm chí chỉ có Zend_Db! Và dĩ nhiên có một bộ điều hợp psd mysql. – markus

Trả lời

10

ADODb khá dễ làm việc và đáng xem xét. Một số mẫu minh họa:

//connect 
    $dsn = 'mysql://user:[email protected]/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"); 
+0

Tôi đã tìm thấy ADODb là cách dễ nhất để thiết lập. – Germstorm

+1

Xin chào ông Dixon, Nhưng thư viện này cần một số tài liệu hay. Bạn có biết về bất kỳ tài nguyên web nào mà tôi có thể tìm thấy một số trợ giúp với nó không. Tôi đã cố gắng tạo một lớp cho các nhiệm vụ liên quan đến cơ sở dữ liệu bằng cách sử dụng thư viện này nhưng không thể thực hiện tốt. –

+0

Tôi thấy tài liệu được OK (xem http://phplens.com/lens/adodb/docs-adodb.htm) –

14

PDO hoạt động tuyệt vời cho tôi, thậm chí tho nó không phải là thư viện hoàn toàn thổi như PEAR :: MDB2.

PDO là một phần mở rộng được biên dịch của PHP5, do đó, có một lợi ích hiệu suất nhỏ là tốt.

+0

Trong dự án tiếp theo của tôi, tôi cũng sẽ xem xét thư viện này. – Germstorm

5

Nếu bạn hài lòng với nó là MySql cụ thể, MySqli là lựa chọn mặc định.

4

Nếu bạn không có nhu cầu thực sự cụ thể, tôi khuyên bạn nên xem PDO, được đi kèm với PHP> = 5.1.

Nó hoàn toàn hướng đối tượng, tạo điều kiện tương thích giữa các công cụ DB; và nó tích hợp trong PHP như là một phần mở rộng C làm cho nó có thể nhanh hơn một chút so với tương đương phát triển trong PHP.

Bạn cũng có thể xem xét phần mở rộng mysqli, cung cấp cả giao diện hướng đối tượng và hướng đối tượng.
Nhưng tôi thà đi đến PDO, tôi nghĩ ...


Và, bây giờ mà bạn đang chi tiêu (đầu tư ;-)) một thời gian tìm kiếm những thứ mới, bạn có thể có một cái nhìn tại chuẩn bị phát biểu : họ được hỗ trợ bởi cả mysqliPDO, và được tốt đẹp cho (trong số những thứ khác) lý do an ninh (không cần phải lo lắng về việc thoát dữ liệu của bạn để ngăn chặn tiêm SQL)


Nếu bạn đã nói bạn cần một ORM đầy đủ giải pháp, tôi đã có thể chỉ cho bạn Doctrine, mà thực sự là một khuôn khổ ORM tuyệt vời; nhưng nó có lẽ là quá nhiều cho nhu cầu của bạn ...

+0

PDO không tạo điều kiện tương thích giữa RDBMSes. Nó thiếu cấu trúc để ẩn sự khác biệt giữa những thứ như cách các datetimes được xử lý khác nhau trên tất cả các RDBMS. PDO vẫn là một lựa chọn tốt để truy cập bất kỳ một RDBMS nào. Nhưng nó là không đầy đủ nếu hỗ trợ cross-RDBMS là cần thiết. – jmucchiello

1

Tôi đã sử dụng this một lần trong một thời gian, nó khá tốt! (Và có một tính năng autoslash tuyệt vời), nó dễ dàng tùy biến và khá nhỏ, nhưng nó có mọi thứ tôi cần. Bạn có thể tương đối dễ dàng mở rộng nó để hỗ trợ bộ nhớ đệm hoặc bất cứ điều gì bạn mong muốn.

Chúc may mắn tìm thấy bất kỳ điều gì phù hợp với bạn nhất.:)

1

Lớp db đơn giản và nhẹ là

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; 
    ?> 
+0

Uh wow, tôi sẽ kiểm tra điều này và hy vọng nó hoạt động. Nó trông rất đẹp. – Germstorm

0

+1 cho PHP Mở rộng PDO (đối tượng dữ liệu PHP). Tôi sử dụng nó cùng với một lớp cơ sở dữ liệu thực sự tiện dụng mở rộng PDO. Bạn có thể tìm thấy dự án nguồn mở này trên Dự án Hosting của Google theo số http://code.google.com/p/php-pdo-wrapper-class.

0

Tôi khuyên bạn nên sử dụng PHP-MySQLi-Database-Class, sử dụng các câu lệnh chuẩn bị và MySQLi (điều này có nghĩa là bạn sẽ được bảo vệ khỏi việc tiêm SQL). Lớp học được tài liệu tốt.

Các vấn đề liên quan