2013-03-19 7 views
7

Więc mam zaktualizowany do 2.1.4 ZF i byłem witany z zawiadomienie mówiąc: Attempting to quote a value in Zend\Db\Adapter\Platform\Mysql without extension/driver support can introduce security vulnerabilities in a production environmentCytując wartość dla zapytania SQL w ZF 2.1.4

Moja dbAdapter jest instanciated jako takie:

return array(
    'service_manager' => array(
    'factories' => array(
     'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory', 
    ) 
    ), 
    'db' => array(
    'driver'   => 'pdo_mysql', 
    'driver_options' => array(
     PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'" 
    ), 
    'dsn'   => 'mysql:dbname=test;host=192.168.1.8', 
    'username'  => 'test', 
    'password'  => 'test', 
    ) 
); 

Co chcę zacytować jest następujący:

$order = 'field(ce.id, ' . $this->_db->getPlatform()->quoteValueList($ids) . ')'; 
$select->order(new Expression($order)); 

Jak mam iść na ten temat? Miałem wrażenie, że pdo_mysql ma wsparcie sterowników do cytowania wartości.

+1

możliwe duplikat -> http://stackoverflow.com/ pytania/15476109/zend-framework-2-subqueries – Crisp

+1

@Crisp Dzięki, które bardzo pomogły. Dodanie '$ this-> platform--> setDriver ($ this-> getDriver());' na getPlatform Zend \ Db \ Adapter zmusiło go do działania. A jednak to błąd. – mobius

Odpowiedz