Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: autoExecute i join
Forum PHP.pl > Forum > Bazy danych
ChanibaL
Witam, nie mogę nigdzie znaleźć klasy abstrakcji bazy danych która by potrafiła z całkiem abstrakcyjnej (i przenośnej) składni stworzyć zapytania SQL. W pear::db i adodb jest co prawda coś takiego jak autoExecute, ale za nic nie mogę wyszukać w dokumentacji ani googlu jak zrobić join'a.
SongoQ
Nie bardzo Cie zrozumialem mozliwe ze chodzi Ci o ORM. Jesli chesz uzywac czystego SQLa no to jest pewien problem bo JOIN ma malutkie rozbierznosci miedzy bazami.
ChanibaL
Chodzi mi o coś takiego - według manuala pear::Db kod
  1. <?php
  2. // Once you have a valid MDB2 object named $mdb2...
  3. $table_name = 'user';
  4.  
  5. // if left as a non array all fields of the table will be fetched using '*'
  6. // in that case this variable can be set to true, to autodiscover the types
  7. $result_types = array(
  8. 'name' => 'text',
  9. 'country' => 'text'
  10. );
  11.  
  12. $mdb2->loadModule('Extended');
  13. $res = $mdb2->extended->autoExecute($table_name, null,
  14. MDB2_AUTOQUERY_SELECT, 'id = '.$mdb2->quote(1, 'integer'),
  15. null, true, $result_types);
  16.  
  17. if (PEAR::isError($res)) {
  18. die($res->getMessage());
  19. }
  20.  
  21. $row = $res->fetchRow();
  22.  
  23. ?>
stworzy
  1. SELECT name, country FROM user WHERE id = 1


Tylko jak i czym stworzyć
  1. SELECT user.name, user.country, COUNT(comment.id) AS comment_count FROM user LEFT JOIN comment ON comment.user_id=user.id WHERE user.id=1 GROUP BY user.id
?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.