我正在将一个php应用程序转换为zend框架并利用Zend_Db_Table来进行查询。 我的问题是,在转换为zend格式后,我对文本格式字段的预期结果将返回一个空字符串而不是存储的数据。
文本字段长度为11000的记录始终为空,但另一条2500长度的记录始终返回正确。
我需要配置一些东西吗?使用zend db table返回的数据是否有限制?
使用mysqli的PHP MySQL,返回true,var有值
$db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$stmt= "select * from m_message where m.m_id='".$m_id."'";
$result = $db->query($q_message);
$ result ['m_content']等于“我得到了......的副本”(11000个字符/长度)
Zend使用pdo_mysql,返回true,var没有值
$this->_db = Zend_Db_Table::getDefaultAdapter();
$stmt = $this->_db->query('SELECT m_content FROM m_message WHERE m_id = ? ', $messageId);
$result = $stmt->fetchAll();
$ result ['m_content']等于(字符串)
$this->_db = Zend_Db_Table::getDefaultAdapter();
$stmt = $this->_db->select()->from('m_message', 'm_content')->where('m_id = ?',$messageId );
$result = $this->_db->fetchAll($stmt);
$ result ['m_content']等于(字符串)
原来在Netbeans中调试时看到变量时出现空值。 正如预期的那样,变量的var_dump实际上显示了数据。 问题是当我使用JSON帮助器将数组作为json返回时。 查看json_last_error()时,它返回5,JSON_ERROR_UTF8。
我的数据库字符集是UTF-8,但为了解决我在将它传递给json助手之前必须执行utf8_encode($ result ['m_content'])的问题:/
答案 0 :(得分:0)
要上次更新,请尝试此操作,因此您的连接实际上是UTF-8。
$db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$this->_db->query("SET NAMES 'utf8'");