Voici deux solutions qui vous permettront d’interagir avec votre base de données MySQL directement en UTF-8 :
- La première concerne la configuration dans votre application.ini dans la partie consacrée à Zend DB.
- La deuxième solution est de créer une fonction _initDb() dans le Bootstrap directement.
Voici un exemple de configuration d’un fichier application.ini. La dernière ligne est la plus importante. C’est grâce à elle que les dialogues avec la base de données se feront en UTF-8
; initialize database resources.db.adapter = "PDO_MYSQL" resources.db.params.host = "localhost" resources.db.params.username = "username" resources.db.params.password = "password" resources.db.params.dbname = "dbname" #resources.db.params.charset = "UTF-8" resources.db.params.date_format = "YYYY-MM-ddTHH:mm:ss" resources.db.isDefaultTableAdapter = true <strong>resources.db.params.driver_options.1002 = "SET NAMES utf8"</strong>
Ce deuxième exemple revient à faire la même chose que dans l’exemple suivant sauf que cette fois nous sommes dans le bootstrap.
protected function _initDb()
{
$pdoParams = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;');
$params = array(
'host' => 'localhost',
'username' => 'username',
'password' => 'password',
'dbname' => 'dbname',
'driver_options' => $pdoParams
);
try {
$db = Zend_Db::factory('PDO_MYSQL', $params);
Zend_Db_Table_Abstract::setDefaultAdapter($db);
} catch (Exception $e) { exit($e->getMessage());
}
Zend_Registry::set('dbAdapter', $db);
}?>
Aucun article en relation.
Un commentaire
Sinon, en beaucoup plus simple, dans application.ini:
resources.db.params.charset = « UTF8″
sans traits d’union et tout va bien…