Oracle-Spezialitäten in ZF
Autor: Vilma Plum
eingetragen: Dienstag, 09. Februar 2010 um 12:03 Uhr (6/2010 Kalenderwoche)
geändert: Dienstag, 02. März 2010 um 14:16 Uhr (9/2010 Kalenderwoche)
Keywords: lastInsertId lastSequenceId
Kategorien: PHP-ZF, DB: Oracle,
Text:
- Specify this Adapter to the factory() method with the name 'Oracle'.
- This Adapter uses the PHP extension oci8.
- Oracle does not support auto-incrementing keys, so you should specify the name of a sequence to lastInsertId() or lastSequenceId().
- The Oracle extension does not support positional parameters. You must use named parameters.
- Currently the ZendDb::CASEFOLDING option is not supported by the Oracle adapter. To use this option with Oracle, you must use the PDO OCI adapter.
- By default, LOB fields are returned as OCI-Lob objects. You could retrieve them as string for all requests by using driver options 'lobasstring' or for particular request by using setLobAsString(boolean) on adapter or on statement.
- This Adapter uses the PHP extension oci8.
Schema Informationen müssen bei Spezial-Usern extra mitgegeben werden. Z.B. in Klasse für DB-Connect das schema aus der config.ini auslesen und hier in registry oder constante speichern. Diese Speicherung dann in jedem Model nutzen unter protected $schema = . Dies greift dann automatisch bei allen Statements, die ohne Nennung der Tabelle aufgerufen werden. Werden SQL-Statements als Select-String geschrieben, muss hier die Speicherung explizit eingefügt werden.
Quellcode:
Verwendung von lastSequenceIsd() ist nur ü+ber den DefaultAdapter möglich:
$id = Zend_Db_Table_Abstract::getDefaultAdapter()->lastSequenceId('S_ID_NWR');
protected $_schema = Schema-Name aus Speicherung