Your SlideShare is downloading. ×
Joomla! 2.5 Database Abstraction
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Joomla! 2.5 Database Abstraction

6,849
views

Published on

Dutch presentation for the JoomlaDays 2012 in The Netherlands; presentation given by Yireo-founder Jisse Reitsma

Dutch presentation for the JoomlaDays 2012 in The Netherlands; presentation given by Yireo-founder Jisse Reitsma


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,849
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
47
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Joomla! database abstractieapril 2012 Joomla! Database Abstractie
  • 2. Jisse Reitsma● Mede-oprichter en developer van Yireo MageBridge, Vm2Mage, SimpleLists Dynamic404, SSL Redirect, ...● Programmeur Joomla!, Magento, PHP, Java, Android● Freelance trainer Joomla! development, Magento development april 2012 Joomla! Database Abstractie
  • 3. Deze presentatie● Deel 1: Over database abstractie● Deel 2: Gebruik van JDatabase● Deel 3: Praktisch met JDatabaseQuery april 2012 Joomla! Database Abstractie
  • 4. (vragen?)april 2012 Joomla! Database Abstractie
  • 5. Deel 1: Over database abstractieapril 2012 Joomla! Database Abstractie
  • 6. Database abstractie (1)● Meerdere databases – MySQL, MSSQL, Oracle, PostgreSQL – MS Access, SQLite, Sybase● Gebruik SQL zo algemeen mogelijk april 2012 Joomla! Database Abstractie
  • 7. Database abstractie (2)● Joomla! biedt momenteel al support voor: – MySQL (mysql, mysqli) – Microsoft SQL (sqlsrv) – Microsoft SQL Azure (sqlzure) april 2012 Joomla! Database Abstractie
  • 8. Database Abstraction Layer (DAL)● AdoDb● Zend_Db● PDO april 2012 Joomla! Database Abstractie
  • 9. #__● Database table prefix● Tijdens Joomla! 2.5 wordt prefix gegeneerd april 2012 Joomla! Database Abstractie
  • 10. JTable● Onderdeel van MVC-architectuur● Gekoppeld aan JModel (model)● “Interface” voor specifieke database tabel● Nieuw in Joomla! 2.5: JTableNested april 2012 Joomla! Database Abstractie
  • 11. JDatabase● Aanbevolen: $db = JFactory::getDBO(); ● Niet doen: $db = JDatabase::getInstance(); april 2012 Joomla! Database Abstractie
  • 12. JDatabaseQuery● Nieuw in Joomla! 2.5● OOP-manier om query in elkaar te zetten● Geen directe SQL-statements meer april 2012 Joomla! Database Abstractie
  • 13. (vragen?)april 2012 Joomla! Database Abstractie
  • 14. Deel 2: Gebruik van JDatabaseapril 2012 Joomla! Database Abstractie
  • 15. Gebruik in Joomla! 1.5 (1)● Ophalen van $db en het escapen van $name $db = JFactory::getDBO(); $name = $db­>Quote($name); april 2012 Joomla! Database Abstractie
  • 16. Gebruik in Joomla! 1.5 (2)● Een query als string opbouwen en klaarzetten $query = “SELECT * FROM #__users”     . “ WHERE `name`=”.$name;  $db­>setQuery($query); april 2012 Joomla! Database Abstractie
  • 17. Gebruik in Joomla! 2.5 (1)● Een lege query beginnen $db = JFactory::getDBO(); $query = $db­>getQuery(true);● Of op een andere manier $query = new JDatabaseQuery(); april 2012 Joomla! Database Abstractie
  • 18. Gebruik in Joomla! 2.5 (2)● De query via methodes in elkaar $query­>select(*); $query­>from(#__users); $query­>where(name=.$name); $db­>setQuery($query); april 2012 Joomla! Database Abstractie
  • 19. JDatabase methoden – setQuery() – query() – loadAssocList() – loadResult() – getErrorMsg() – Quote()april 2012 Joomla! Database Abstractie
  • 20. JDatabaseQuery methoden – select(), insert(), delete(), update() – from(), where() – quote() – leftJoin(), rightJoin(), innerJoin(), outerJoin() – order(), having(), group()april 2012 Joomla! Database Abstractie
  • 21. JTable methoden – load() – delete() – bind() + check() + store() = save() – getFields() – getKeyName()april 2012 Joomla! Database Abstractie
  • 22. (vragen?)april 2012 Joomla! Database Abstractie
  • 23. Deel 3: Praktisch met JDatabaseQueryapril 2012 Joomla! Database Abstractie
  • 24. JOINs maken (1)● Verschillende join-mogelijkheden – innerJoin($join)  => join(INNER, $join) – outerJoin($join)  => join(OUTER, $join) – leftJoin($join)  => join(LEFT, $join) – rightJoin($join)  => join(RIGHT, $join) april 2012 Joomla! Database Abstractie
  • 25. JOINs maken (2)● $query = $db­>getQuery(true);● $query­>select(count(*));● $query­>from(#__xyz_items AS i);● $query­>leftJoin(#__xyz_categories  AS c ON i.category_id = c.id); april 2012 Joomla! Database Abstractie
  • 26. Nested sets● Klasse JTableNested – Niet voor JOINs, maar node-structuren JTableCategory, JTableMenu, JTableAsset –● jimport(joomla.database.tablenested); april 2012 Joomla! Database Abstractie
  • 27. Andere databases benaderen● $options = array(   driver => mysqli,   host => localhost,   user => foo, password => bar,   database => wordpress,   prefix => wp_, );● $db = JDatabase::getInstance($options); april 2012 Joomla! Database Abstractie
  • 28. Een query debuggen● $query­>select(*)­>from(#__content);● echo $query; // __toString(); april 2012 Joomla! Database Abstractie
  • 29. (vragen?)april 2012 Joomla! Database Abstractie