Salut, Le 28/09/2014 11:21, Mélissa Djebel a écrit :
Salut Johan, La solution est ici: http://www.geeksww.com/tutorials/database_management_systems/mysql/tips_and_tricks/how_to_check_mysql_version_number.php
Pour MySQL, peut-être... Mais ça ne fonctionne pas du totu pour SQLite, et sous Postgres, la chaîne renvoyée est bien différente.
Il faut faire soit : SELECT version(); soit SELECT @@version; Par contre, j'ai été bien incapable de transformer ça en requête Zend_Db, je ne comprends pas ce framework, c'est juste ....
Faut voir du côté des alternatives alors :D
Ca devrait ressembler à quelque chose comme ça: try { $select = $zdb->select()->columns(array('version' => '@@version')); [...]
La méthode select() (tout comme ses homologues) n'est pas prévue pour exécuter du SQL directement (cf. http://framework.zend.com/manual/2.3/en/modules/zend.db.sql.html). La solution dans ce cas, c'est de lancer une requête SQL standard, ce que permet Zend_Db (ce qui est à éviter globalement, pour la gestion des différents moteurs notamment). Ce que tu cherches, c'est dans le genre de ce qui est fait dans Db::SelectAll() ; à savoir (dans le contexte de Galette - cf. http://framework.zend.com/manual/2.3/en/modules/zend.db.adapter.html#query-execution-through-zend-db-adapter-adapter-query) : use Zend\Db\Adapter\Adapter; [...] $result = $zdb->db->query( 'SELECT version()', Adapter::QUERY_MODE_EXECUTE ); $result sera alors un ResultSet (http://framework.zend.com/manual/2.3/en/modules/zend.db.result-set.html) dans lequel tu pourra trouver la valeur attendue (voir l'utilisation qui est faite de Db::SelectAll() dans Preferences::load()). Hope that helps ;) -- Johan
Attachment:
signature.asc
Description: OpenPGP digital signature