2010-02-22 2 views
1

다음 지침에 따라 데이터베이스에서 일부 레지스터를 가져옵니다. Zend 데이터베이스 쿼리 결과가 열 값을 null로 변환합니다.

합니다 (PARAMS 모듈에서) 필요한 모델을 만들기 :

$obj_paramtype_model = new Params_Model_DbTable_Paramtype(); 
$obj_param_model  = new Params_Model_DbTable_Param(); 

을 내가 젠드에서 내 모든 DB의 실행을위한 프로파일을 가지고있는 데이터베이스

// This returns a Zend_Db_Table_Row_Abstract class object 
$obj_paramtype = $obj_paramtype_model->getParamtypeByValue('available_locales'); 

// This is a query used to add conditions to the next sentence. This is executed from the Params_Model_DbTable_Param instance class, that depends from Params_Model_DbTable_Paramtype class (reference map and dependentTables arrays are fine in both classes) 
$obj_select = $this->select()->where('deleted_at IS NULL')->order('name'); 

// Execute the next query, applying the select restrictions. This returns a Zend_Db_Table_Rowset_Abstract class object. This means "Find Params by Paramtype" 
$obj_params_rowset = $obj_paramtype->findDependentRowset('Params_Model_DbTable_Param', 'Paramtype', $obj_paramtype); 

// Here the firebug log displays the queries.... 
Zend_Registry::get('log')->debug($obj_params_rowset); 

에서 사용 가능한 로케일을 얻기. 이 시점에서 Firebug 작성자를 포함하는 로그 및 프로파일 러 객체는 실행 된 SQL 쿼리를 표시하고 마지막 행은 결과 Zend_Db_Table_Rowset_Abstract 클래스 객체를 표시합니다. 일부 MySQL 클라이언트에서 SQL 쿼리를 실행하면 예상대로 결과가 나타납니다. 그러나 Zend Firebug 로그 작성자는 열 값에 라틴 문자 (ñ)를 NULL로 표시합니다.

즉, 외부 SQL 클라이언트는 을 표시합니다. es_CO | Español de Colombiako | English of United States하지만 Zend의 쿼리 결과가 표시되고 반환됩니다 es_CO | nullko | 미국의 영어.

나는 스페인어 드 콜롬비아에서 ñ 문자를 삭제 한 쿼리 결과를 내 젠드 로그인 방화범 화면에서 잘하고, 최종 젠드 양식 요소이다.

MySQL 데이터베이스, 테이블 및 열은 UTF-8 - utf8_unicode_ci 데이터 정렬입니다. 내 모든 젠드 프레임 워크 페이지는 UTF-8 문자 세트로되어 있습니다. 저는 Windows 7 Ultimate에서 실행되는 XAMPP 1.7.1 (PHP 5.2.9, Apache at 90 및 MySQL 5.1.33-community)을 사용하고 있습니다. Zend Framework 1.10.1.

정보가 너무 많아서 미안하지만 그 이유는 무엇인지 모릅니다. 그래서 답을 찾는 데 도움이되는 많은 관련 정보를 제공하려고 노력했습니다.

답변

0

어떻게 데이터베이스와의 연결을 만들고 해당 연결에서 charset을 정의 했습니까? 그건 내가 간과하고 문제가 될 수도있는 질문에서 찾을 수없는 것이 었나요? 그래서 나는

resources.db.params.charset = utf8 

해결 내 모든 쿼리 UTF8 문제를 추가 설치 데이터베이스에 .ini 파일을 사용한다. 희망이 도움이됩니다.

+0

곧이 질문에 대한 답을 찾을 수 없으므로 Doctrine을 Zend Framework DB ORM으로 사용하기로 결정했습니다. 하지만이 답변은 괜찮아 보입니다. 테스트 할 다른 프로젝트를 만들겠습니다. 답변에 대해 조금 더 설명 드리겠습니다. 이 문제가 해결되면이 대답을 그 것으로 표시 할 것입니다. 도와 주셔서 대단히 감사합니다. 좋은 하루 되세요. –

관련 문제