岩井裕士
iwai.****@gmail*****
2010年 9月 12日 (日) 23:31:42 JST
はじめまして、岩井と申します。
CodeIgniter1.7.1 を利用していまして、以下のエラーが発生し、原因がわからず、困っています。
どなたか、同一の事象など発生した経験のある方はいますでしょうか?
[Tue Aug 31 04:12:02 2010] [error] PHP Fatal error: Call to undefined
method CI_DB_mysql_result::`3\xcc\x19\xf6*() in
system/application/libraries/BaseModel.php on line 351
[Tue Aug 31 04:12:02 2010] [error] PHP Fatal error: Call to undefined
method CI_DB_mysql_result::`3\xcc\x19\xf6*() in
system/application/libraries/BaseModel.php on line 351
[Tue Aug 31 04:12:02 2010] [error] PHP Fatal error: Call to undefined
method CI_DB_mysql_result::`3\xcc\x19\xf6*() in
system/application/libraries/BaseModel.php on line 253
[Tue Aug 31 04:12:02 2010] [error] PHP Fatal error: Call to undefined
method CI_DB_mysql_result::`3\xcc\x19\xf6*() in
system/application/libraries/BaseModel.php on line 351
当初、データベースのカラム名に問題があるのでは、指摘されたのですが、カラム名は、すべてutf8で英数字のみで構成しています。
また、エラーが発生するのは、ある程度、運用してから発生するようで、原因がいまいち、わかりません。。。
なぜ、メソッド名が化けてしまうのか....。 Xcacheに起因する問題なのでしょうか?
何卒、ご教授の程、宜しくお願い致します。
上記のエラーの該当部分は、以下のような内容でエラー発生は、すべて result メソッドを呼び出す際に発生しています。
{code}
function find($condition) {
$this->db->stop_cache();
$this->db->flush_cache();
if (!is_array($condition)) {
$condition = array('id' => $condition);
}
$entity_list = $this->db->get_where($this->table_name(), $condition);
if ($entity_list->num_rows == 0) {
return false;
}
$entity = NULL;
foreach ($entity_list->result() as $row) {
if (!isset($row->deleted)) {
$entity = $row;
break;
}
}
$this->db->start_cache();
return isset($entity) ? $entity : FALSE;
}
{/code}
サーバ環境は、以下の環境です。
CentOS release 5.4 (Final)
$ uname -a
Linux xxxxxxx.jp 2.6.18-164.6.1.el5 #1 SMP Tue Nov 3 16:12:36 EST 2009
x86_64 x86_64 x86_64 GNU/Linux
$ php --version
PHP 5.2.11 (cli) (built: Feb 8 2010 12:05:50)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
with XCache v1.3.0, Copyright (c) 2005-2009, by mOo
--
----------------------------------------------------------------------
岩井