2009-08-02 20 views
8

Pracuję na małej stronie PHP. Potrzebuję klasy dostępu do bazy danych MySQL, która jest łatwa do skonfigurowania i pracy.Przydatna baza danych PHP klasy

Nie musi to być pełna struktura, potrzebuję tylko maks. kilka klas.

+1

Od Zend Framework możesz naprawdę po prostu wziąć to, co chcesz. Nawet tylko Zend_Db! I jest oczywiście adapter mysql pdo. – markus

Odpowiedz

10

ADODb jest dość łatwy w użyciu i warty rozważenia. Niektóre przykładowe próbki:

//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

Znalazłem ADODb jako najłatwiejszy w konfiguracji. – Germstorm

+1

Witam Mr. Dixon, Ale ta biblioteka potrzebuje dobrej dokumentacji. Czy znasz jakieś zasoby internetowe, w których mogę znaleźć pomoc. Próbowałem utworzyć klasę dla zadań związanych z bazą danych przy użyciu tej biblioteki, ale nie mogłem tego zrobić dobrze. –

+0

Stwierdziłem, że dokumentacja jest w porządku (patrz http://phplens.com/lens/adodb/docs-adodb.htm). –

14

PDO działa świetnie dla mnie, nawet pomimo, że nie jest to w pełni dmuchane jak biblioteka PEAR :: MDB2.

PDO jest skompilowanym rozszerzeniem PHP5, więc istnieje także niewielka zaleta wydajności.

+0

W następnym projekcie rozważę również tę bibliotekę. – Germstorm

5

Jeśli jesteś zadowolony ze specyfiki MySql, domyślnym wyborem jest MySqli.

4

Jeśli nie masz naprawdę konkretnych potrzeb, polecam przyjrzeć się PDO, która jest dołączona do PHP> = 5.1.

Jest w pełni obiektowa, ułatwia kompatybilność między silnikami DB; i jest to integracja z PHP, ponieważ rozszerzenie C sprawia, że ​​jest ono prawdopodobnie szybsze niż odpowiedniki opracowane w PHP.

Można również rzucić okiem na rozszerzenie mysqli, które zapewnia zarówno interfejs zorientowany na funkcje, jak i obiektowy.
Ale wolałbym pójść do PDO, myślę ...


I teraz, że spędzasz (inwestowanie ;-)) jakiś czas poszukuje nowych rzeczy, można spojrzeć na sporządzanych sprawozdań : są one poparte zarówno mysqli i PDO i są miłe dla (między innymi) ze względów bezpieczeństwa (nie trzeba się martwić o ucieczce swoje dane, aby zapobiec zastrzyk SQL)


Gdybyś powiedział, że potrzebny jest pełny ORM rozwiązanie, chciałbym wskazać na Doctrine, który jest naprawdę świetny framework ORM; ale to chyba zbyt wiele dla twoich potrzeb ...

+0

ChNP nie ułatwia kompatybilności między RDBMS. Brakuje konstrukcji, aby ukryć różnice między rzeczami, takimi jak sposób obsługi danych w różny sposób na wszystkich RDBMS. PDO jest nadal dobrym wyborem dla uzyskania dostępu do dowolnego RDBMS. Ale jest niekompletne, jeśli wymagana jest obsługa krzyżowych RDBMS. – jmucchiello

1

Od czasu do czasu używam this, Jest całkiem niezły! (I ma niesamowitą funkcję autoslash), jest łatwo konfigurowalny i całkiem mały, ale miał wszystko, czego potrzebowałem. Możesz prawdopodobnie stosunkowo łatwo rozszerzyć go, aby wspierać buforowanie lub cokolwiek chcesz.

Powodzenia ze znalezieniem wszystkiego, co najbardziej Ci odpowiada.:)

1

Najprostszym i lekka klasa db jest

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

Wow, przetestuję to i mam nadzieję, że zadziała. Wygląda naprawdę ładnie. – Germstorm

0

Polecam używać PHP-MySQLi-Database-Class, który wykorzystuje MySQLi i przygotowane instrukcje (oznacza to, że będziesz chroniony przed iniekcją SQL). Klasa jest dobrze udokumentowana.