prefeituravitoria / mssql-bundle
Symfony 2 的 Microsoft SQL Server Bundle
Requires
- doctrine/common: ~2.2,>=2.2.3
This package is not auto-updated.
Last update: 2022-02-01 12:46:59 UTC
README
步骤 1. 安装 MssqlBundle
将 prefeituravitoria/mssql-bundle 添加到 composer.json
"require": {
....
"prefeituravitoria/mssql-bundle": "master-dev"
},
然后运行
$ php composer.phar install
步骤 2. 配置 DBAL 的连接以使用 MssqlBundle
在 config.yml 中,删除 "driver" 参数,并添加 "driver_class" 代替
doctrine:
dbal:
default_connection: default
connections:
default:
driver_class: Realestate\MssqlBundle\Driver\PDODblib\Driver
host: %database_host%
dbname: %database_prefix%%database_name%
user: %database_user%
password: %database_password%
步骤 3. 启用 Bundle
最后,在 Kernel 中启用 Bundle
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Realestate\MssqlBundle\RealestateMssqlBundle(), ); }
注意
先决条件
Microsoft SQL Server 2012。
此驱动程序需要版本 8.0(来自 http://www.ubuntitis.com/?p=64),因为默认的 4.2 版本没有 UTF 支持
在 /etc/freetds/freetds.conf 中,将 tds version = 4.2 更改为 tds version = 8.0
NVARCHAR & NTEXT 数据类型
NVARCHAR & NTEXT 不受支持。在 SQL 2000 SP4 或更高版本、SQL 2005 或 SQL 2008 中,如果执行返回 NTEXT 类型数据的查询,可能会遇到以下异常:_mssql.MssqlDatabaseError: SQL Server 消息 4004,严重性 16,状态 1,行 1:Unicode 数据在仅 Unicode 的校对或 ntext 数据不能发送到使用 DB-Library(如 ISQL)或 ODBC 3.7 或更早版本的客户。
这意味着由于 FTREETDS 的不足,SQL Server 无法将 Unicode 数据发送到 FTREETDS。您必须将数据 CAST 或 CONVERT 到等效的 NVARCHAR 数据类型,该数据类型不会表现出这种行为。