PHP アプリを zend フレームワークに変換し、Zend_Db_Table を使用してクエリを作成しています。私の問題は、zend 形式に変換した後、テキスト形式フィールドの予想される結果が、保存されたデータではなく空の文字列を返すことです。
テキスト フィールドの長さが 11000 のレコードは常に空を返しますが、長さが 2500 の別のレコードは常に正しく返されます。
設定する必要があるものはありますか? zend db テーブルを使用して返されるデータに制限はありますか?
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'] equals "I got a copy of the ..." (11000 文字 / 長さ)
pdo_mysql を使用する Zend は 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 でのデバッグ中に変数を監視しているときに、null が表示されていたことが判明しました。変数の var_dump には、予想どおり、実際にデータが表示されました。問題は、JSON ヘルパーを使用して配列を json として返したときでした。json_last_error() を見ると、5、JSON_ERROR_UTF8 が返されました。
私の DB 文字セットは UTF-8 ですが、問題を解決するには、json ヘルパーに渡す前に utf8_encode($result['m_content']) を実行する必要がありました:/