我正在查看Yii 1.1.5的源文件,但我没有看到ODBC的数据库架构。当我在配置文件中使用此连接字符串时:
'db'=>array(
'connectionString' => 'odbc:rhinestone',
'username' => 'user',
'password' => 'pass',
),
我收到此错误:
"CDbConnection does not support reading schema for ODBC database."
但是,我可以在常规php中使用该连接字符串并连接正常:
$dbh= new PDO('odbc:rhinestone', 'user', 'pass');
所以我知道这不是我的驱动程序或PHP的问题。
为什么Yii不支持ODBC?这会改变吗?我正在尝试从Linux服务器连接到MSSQL,似乎pdo mssql和dblib驱动程序是实验性的或已弃用。
有没有人对如何做到这一点有任何建议?
更新:到目前为止,我收到了许多建议,都假设我在Windows上运行PHP。不是这种情况。我在Linux上运行它,我必须连接到一个项目的SQL Server数据库。
答案 0 :(得分:1)
这个问题的答案是,在撰写本文时,Yii没有pdo_odbc的架构。据我所知,他们没有计划写一个。如果有人听到,请告诉我。
答案 1 :(得分:0)
我使用过easysoft的非开源驱动程序,它工作正常。
我还使用了另一种解决方法,即在Windows服务器计算机上安装yii堆栈,并且只使用Microsoft的MSSQL Php驱动程序,我上次看到它here。之后你可以使用
'db'=>array(
'connectionString' => 'sqlsrv:server=(local)\SQLEXPRESS ; Database=mydb',
)