webForumDet fria alternativet

Blogga med Zend Framework - Del 8: Zend_Db

Webbutveckling

0 svar · 3 629 visningar · startad av jme

Medlem sedan maj 20012 237 inlägg
Frågan#1

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å:

$id = 1;
$select = $db->select()
			->from(	array('u' => 'users'),
					array('username') )
			->where('id = ?', $id);			

$username = $db->fetchOne($select);

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.

259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)