Zend_Db är ett gränssnitt som erbjuder ett lättare sätt att kommunicera med en databas. Modulen innehåller bl. a funktioner för att lagra (INSERT), uppdatera (UPDATE), ta bort (DELETE) och hämtning av data (SELECT).
Följande INSERT:
INSERT INTO foo (age, name) VALUES (25, 'jme');
Kan med Zend_Db skrivas:
$db->insert('foo', array('age' => 25, 'name' => 'jme') );
Följande SELECT:
SELECT u.username FROM users u WHERE id = 1;
blir då:
Ovanstående fråga kunde även ha skrivits lite lättare:
$username = $db->fetchOne('SELECT u.username FROM users u WHERE id = ?', $id);
Följande DELETE:
DELETE FROM users WHERE id = 1;
blir då
$db->delete('users', $db->quoteInto('id = ?', $id) );
Det mer komplicerade sättet kommer till hands då vi måste göra flera joins bl. a. Sedan måste man komma ihåg att använder man ZFs sätt att skapa SQL-frågorna så är de mer kompatibla med andra RDBMS. Skriver du SQL-frågorna manuellt så finns det större risk för att du måste göra förändringar om du byter till en annan RDBMS.
Följande INSERT:
INSERT INTO foo (age, name) VALUES (25, 'jme');
Kan med Zend_Db skrivas:
$db->insert('foo', array('age' => 25, 'name' => 'jme') );
Följande SELECT:
SELECT u.username FROM users u WHERE id = 1;
blir då:
PHP-kod:
$id = 1;
$select = $db->select()
->from( array('u' => 'users'),
array('username') )
->where('id = ?', $id);
$username = $db->fetchOne($select);
$username = $db->fetchOne('SELECT u.username FROM users u WHERE id = ?', $id);
Följande DELETE:
DELETE FROM users WHERE id = 1;
blir då
$db->delete('users', $db->quoteInto('id = ?', $id) );
Det mer komplicerade sättet kommer till hands då vi måste göra flera joins bl. a. Sedan måste man komma ihåg att använder man ZFs sätt att skapa SQL-frågorna så är de mer kompatibla med andra RDBMS. Skriver du SQL-frågorna manuellt så finns det större risk för att du måste göra förändringar om du byter till en annan RDBMS.