symfony 中propel 连接数据库的字符集设置

之前玩了一段symfony,由于没有项目的动力,只是了解一下,最终还是放下,
最近接了些私活,最近写了几个小项目,由于时间紧,感觉有需要找一个框架来提速一下,就又拾起了symfony

数据库存放的时候用的gb2312,页面用的gb2312,按symfony默认的数据库及页面的编码显示错误,经过找资料及看symfony的sfPropelDatabase中的相关参数,于是修改了 app/module/config/settings.yml 的相关内容
  1. all:
  2. .settings:
  3. #Formsecuritysecret(CSRFprotection)
  4. csrf_secret:false#UniquesecrettoenableCSRFprotectionorfalsetodisable
  5. #Outputescapingsettings
  6. escaping_strategy:false#Determineshowvariablesaremadeavailabletotemplates.Acceptedvalues:on,off.
  7. escaping_method:ESC_SPECIALCHARS#Functionorhelperusedforescaping.Acceptedvalues:ESC_RAW,ESC_ENTITIES,ESC_JS,ESC_JS_NO_ENTITIES,andESC_SPECIALCHARS.

  8. #下面的新加的
  9. charset:gb2312#如果前台的页面输出是gb2312 此处必须设置
上面的修改将会改变网页输出编码为gb2312

但上面的修改并不能改变数据库连接的字符集设置
你需要对your_web_root/config/database.yml做如下的设置
  1. all:
  2. propel:
  3. class:sfPropelDatabase
  4. param:
  5. dsn:mysql://root@localhost/new
  6. #下面的内容是新加的
  7. encoding:gb2312#相当于 setnamesgb2312
  8. persistent:true#mysql的持续连接

注解: symfony 默认的字符集是utf-8
如果你不知道一个类的相关参数,可以去PEAR/symfony中看相关类的内容,这也是一个不错的学习方法

你可能感兴趣的:(mysql,框架,Web)