1

当我将 PDO_Mysql 适配器与 Zend 一起使用时,我遇到了一些问题。

应用程序.ini

resources.db.adapter = mysqli
resources.db.host = localhost
resources.db.dbname = myproject
resources.db.username = root
resources.db.password = 123456
resources.db.profiler.enabled = true
resources.db.profiler.class = "Zend_Db_Profiler_Firebug"

bootstrap.php 中的数据库初始化

$database = $config['resources']['db'];
$db = Zend_Db::factory($database['adapter'], $database);
$db->setFetchMode(Zend_Db::FETCH_OBJ);
$db->query("SET NAMES 'utf8';");
$db->query("SET CHARACTER SET 'utf8';");

Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::getInstance()->set('db', $db);

return $db;

好的,当我做一个简单的 fetchAll() 并检查循环时:

foreach ($rows as $row) {
    if ($row->id === 1) {
        echo 'first id';
    } else {
        echo 'other rows';
    }
}

表中存在一行“ID”=“1”(整数),但是,出于任何原因......当我使用 PDO_Mysql 时,我无法进行数据类型比较(“===”或“!==”),但如果我使用“Mysqli”适配器工作正常。

使用 PDO_Mysql 适配器,每一行的每一列都是“字符串”(当我检查 var_dump 时)。

有人知道原因吗?

谢谢。

4

0 回答 0