Servus,
Ich habe ein kleines Problem mit einem MSSQL Query in Zend. Ich muss hier einen VarChar Wert in einen Smalldatetime Wert konvertieren im MSSQL Manager funzt der Query astrein doch Zend quoted leider etwas zuviel. Ich habe das Query schon extrem zerlegt aber es wird anscheinend im Zusammenbau erst gequoted
PHP-Code:
$datestart = $sstring . ' 00:00:00';
$dateend = $sstring . ' 23:59:59';
$conDateStart = 'CONVERT(smalldatetime,\'' . $datestart . '\',20)';
$conDateEnd = 'CONVERT(smalldatetime,\'' . $dateend . '\',20)';
$qdatestart = $db->quoteInto($sfield . ' >= ?', $conDateStart);
$qdateend = $db->quoteInto($sfield . ' <= ?', $conDateEnd);
$selectRows->from($this->_name,'COUNT(OrderID) AS num')
->where('Order_state = ?',$state)
->where($qdatestart)
->where($qdateend)
->where('Product_Type = ?',711);
Ergebnis ist dann folgendes Query mit eindeutig zuvielen Quotes welche dann Zend gegen die Wand laufen lassen:
PHP-Code:
SELECT COUNT(OrderID) AS "num" FROM "tnUser_Orders"
WHERE (Order_state = '3100')
AND (Order_Date >= 'CONVERT(smalldatetime,''2011-09-01 00:00:00'',20)')
AND (Order_Date <= 'CONVERT(smalldatetime,''2011-09-01 23:59:59'',20)')
AND (Product_Type = 711)
Ich habe auch schon versucht über den Ini Eintrag
PHP-Code:
resources.db.params.options.Zend_DB::AUTO_QUOTE_IDENTIFIERS = false
Das Quoting zu verhindern aber ohne Erfolg.