nxclass
Goto Top

Zend mit MSSQL - Quoting Problem ?

Hallo,

ich arbeite mit dem Zend Framework und suche in einer MSSQL Datenbank nach einer Zeichenkette welche außer Zahlen auch zwei Slashes enthält.

application.ini
; ...
; Konfiguration MSSQL Server
resources.multidb.mssql.adapter = "PDO_MSSQL"  
resources.multidb.mssql.pdoType = "dblib"  
; ...

Bootstrap.php
// ...
$dbResource = $this->getPluginResource('multidb');  
$dbResource->init();
// ...
Zend_Registry::set('Zend_Db_Mssql', $dbResource->getDb('mssql'));  
// ...

in der Action bzw Model
$dbMs = Zend_Registry::get('Zend_Db_Mssql');  
$Referenznummer = '123/4567/890';  
$result = $dbMs->select()->from( array'tabelle', array( 'id' ))  
    ->joinInner(
    ->where('"Referenznummer" = ?', $Referenznummer)  
    ->query()->fetchAll();

Das Problem ist nun, dass die generierte SQL Abfrage optisch funktioniert. - soll heißen: kopiert und manuell auf dem Server ausführen funktioniert und liefert die gewünschten Ergebnisse.
Sobald jedoch ->query() ausgeführt wird, passiert gar nichts mehr - keine Exception - nichts.

Ich habe nun folgendes versucht:
$result = $dbMs->query( <<<__SQL__
SELECT "id" FROM "tabelle" WHERE "Referenznummer" = '123/4567/890'             
__SQL__
)->fetchAll();

... und es geht.

vielen Dank schon mal für eure Tipps

EDIT: das Problem liegt scheinbar doch noch woanders - in der Originalen SQL Abfrage ist noch ein ->joinInner() enthalten und eines der Datenfelder (Datentyp Money) verursachte das Problem.

Content-ID: 176979

Url: https://administrator.de/contentid/176979

Ausgedruckt am: 21.11.2024 um 17:11 Uhr

msr972
msr972 29.11.2011 um 12:25:42 Uhr
Goto Top
Hallo,

ich wollte nur was anmerken, obwohl ich leider noch nicht in ZF wirklich firm bin. Du schreibst hier in einem Codeblock:
->where('"Referenznummer" = ?', $Referenznummer)   

Ist denn dei Anweisung so richtig? Oder gehört das ? nicht auch noch in ' ' ... ? Wiegesagt, meine ZF Kenntnisse betragen 0, aber das fiel mir so spontan auf...
nxclass
nxclass 29.11.2011 um 13:19:14 Uhr
Goto Top
Ist denn dei Anweisung so richtig? Oder gehört das ? nicht auch noch in ' ' ... ?
...das ist in Ordnung so - der Wert aus der Variablen wird dann gequotet und ersetzt den Platzhalter '?'