zend framework 1.9.4中文乱码解决方法

官方的示例是用sqlite的,所以并没有涉及到mysql的乱码问题。不过这个问题我们得重视它。

贴代码

application/models/Guestbook.php

<?php
class Default_Model_GuestbookMapper
{
	protected $_dbTable;
	private $_hasAdjustName;
	private function adjustNames(){
		if(!$_hasAdjustName){
			$db=$this->_dbTable->getAdapter();
			$db->query('set names gbk');
			$_hasAdjustName=true;
		}
	}
	public function setDbTable($dbTable){
		if(is_string($dbTable)){
			$dbTable= new $dbTable();
		}
		if(!$dbTable instanceof Zend_Db_Table_Abstract){
			throw new Exception('Invalid table data gateway provided');
		}
		$this->_dbTable = $dbTable;
		return $this;
	}
	public function getDbTable(){
		if(null === $this->_dbTable){
			$this->setDbTable('Default_Model_DbTable_Guestbook');
		}
		$this->adjustNames();
		return $this->_dbTable;
	}

adjustNames是我加的,在每次取表的时候,调用一下这个方法,判断是否设定了数据库编码,如果没有设,就来设一次

相关文章

发表评论