Php 原则2.1和表utf-8编码
Php 原则2.1和表utf-8编码,php,database,doctrine-orm,Php,Database,Doctrine Orm,有人能告诉我如何强制条令使用UTF-8编码和utf8\u polish\u ci创建数据库表吗?我的条令配置文件具有以下db配置参数: $conn = array( 'driver' => 'pdo_mysql', 'dbname' => 'test', 'user' => 'root', 'password' => '*****', 'charset' => 'utf8', 'driverOptions' =>
有人能告诉我如何强制条令使用UTF-8编码和
utf8\u polish\u ci
创建数据库表吗?我的条令配置文件具有以下db配置参数:
$conn = array(
'driver' => 'pdo_mysql',
'dbname' => 'test',
'user' => 'root',
'password' => '*****',
'charset' => 'utf8',
'driverOptions' => array(1002=>'SET NAMES utf8'));
尽管如此,它仍在使用默认编码创建表:
latin1
和latin1\u swedish\u ci
如果在数据库中设置它,doctrine只使用数据库的默认值。请看下面的问题
4.1.1。如何设置MySQL表的字符集和排序规则?
不能在注释、yml或xml映射文件中设置这些值。要使数据库使用默认字符集和排序规则,您应该将MySQL配置为使用默认字符集,或者使用字符集和排序规则详细信息创建数据库。通过这种方式,它们被继承到所有新创建的数据库表和列中
创建数据库时,应按如下方式创建:
创建数据库`your\u table\u name`默认字符集utf8 COLLATE utf8\u polish\u ci代码>
这将允许您创建的表继承字符集并整理值使用下面的代码来设置条令整理、字符集和引擎:
/**
* @ORM\Table(name="temporary", options={"collate"="utf16_latin_ci", "charset"="utf16", "engine"="MyISAM"})
* @ORM\Entity
*/
首先,为什么要使用条令创建表?无论您使用哪种数据库管理工具,您都会这样做吗?@Pekka-让Doctrine2为您管理DDL语句是在Doctrine2中执行操作的首选方式。orm:schema工具:[创建|更新]是命令行工具的相关命令。我可以在哪里设置数据库的默认值?