Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ręczne zapytania MySQL czy AdoDB?, Lepiej wykonywać zapytania SQL ręcznie, czy korzystając z biblioteki?
Apocalyptiq
post
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Odkąd tylko pracuje z MySQL, używam biblioteki AdoDB - do obsługi baz danych. Chciałem zapytać profesjonalistów, co bardziej się opłaca - wykonywać zapytania ręcznie poprzez fetch, czy używać jakiejś biblioteki do baz danych? AdoDB posiada takie funkcje jak GetOne - pobranie jednego rekordu do zmiennej, GetCol - pobranie kolumny, GetRow - pobranie wiersza itp.
Proszę o wasze opinie, co jest wydajniejsze, co jest poprawniejsze i co wygodniejsze w użyciu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Po prostu jak radzicie pracować z bazami MySQL (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
(ta biblioteka AdoDB ma około 2MB)

Zrobiłem małe testy czasowe AdoDB i ręcznych zapytań, i ręczne wypadają ok. 3x szybciej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Tylko że przy AdoDB piszę się mniej kodu, wygodniej nieco się pracuje z bazami. Tylko stosując ręczne zapytania, trzebaby się wyposażyć w jakąś funkcję zabezpieczającą zmienne wprowadzane do zapytań SQL z zewnątrz przed SQL Injection - tj. dodawanie apostrofów w odpowiednich miejscach itp.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Apocalyptiq
post
Post #2





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Test AdoDB:
Kod
<? function podajCzas(){
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
    }
    $start=podajCzas();
    require_once 'inc/db.php';
    foreach($db->GetAll('SELECT * FROM events') as $player){
    print_r($player);}
    echo '
    czas: '.round(podajCzas()-$start,3).' sekund';
    ?>

Test fetch:
Kod
<? function podajCzas(){
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
    }
    $start=podajCzas();
    $sql_conn=mysql_connect('localhost', 'root', '***');
    mysql_select_db('siatka');
    $players=mysql_query('SELECT * FROM players');
    while($player=mysql_fetch_assoc($players)){
    print_r($player)];
    }
    echo '
    czas: '.round(podajCzas()-$start,3).' sekund';
    ?>

Wyświetlałem sobie struktury zwracanych tablic i liczyłem czas.
Różnica niby duża, ale uwidoczni się to pewnie przy większych ilościach zapytań na jednej stronie, a na przeciętnych stronach za dużo się ich nie pojawia naraz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A biblioteki dają większą wygodę pracy z MySQL.

Piszcie swoje opinie na ten temat, co wy używacie do pracy z MySQL, i jak radzicie innym (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Apocalyptiq 21.10.2008, 20:57:53
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 22:29