Laravel配置ODBC驱动程序
问题描述:
我需要配置Laravel 4使用ODBC驱动程序PDO为SQL Server 2000Laravel配置ODBC驱动程序
我在一个普通的PHP文件测试,它完美的作品,但是,我不能得到正确的Laravel内部的配置。
这是我的连接字符串>
$conn = new PDO("odbc:Driver={SQL Server};Server=MyHOST;Database=myDb;User Id=sa;Password=;");
我得到这个至今在Laravel的config/database.php中
编辑
好了,我也跟着从https://github.com/ccovey/odbc-driver的指示,我配置:
我将它改为
'odbc' => array(
'driver' => 'odbc',
'dsn' => 'Driver={SQL Server};Server=MyServer',
'grammar' => 'SqlServerGrammar',
'username' => 'user',
'password' => 'pass',
'database' => 'staPPM',
),
即时得到一个错误FatalErrorException,语法未找到
答
Laravel 4仍然不直接支持ODBC,你必须做你自己或者你可以尝试使用这个驱动程序:https://github.com/ccovey/odbc-driver。
你必须添加连接这应该是这个样子:
'odbc' => array(
'driver' => 'odbc',
'dsn' => 'Driver={iSeries Access ODBC Driver};System=my_system_name;',
'grammar' => 'DB2',
'username' => 'foo',
'password' => 'bar',
'database' => '',
'grammar' => 'SqlServerGrammar',
),
正如包文档指出,你必须提供一个有效的DSN连接到您的服务器:那些部分是例子有效的连接字符串:
"Driver={SQL Server};Server=(local);Trusted_Connection=Yes;Database=AdventureWorks;"
"Driver={Microsoft ODBC for Oracle};Server=ORACLE8i7;Persist Security Info=False;Trusted_Connection=Yes"
"Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\bin\Northwind.mdb"
"Driver={Microsoft Excel Driver (*.xls)};DBQ=c:\bin\book1.xls"
"Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=c:\bin"
要知道,如果你的DSN是有效的,你最好测试Laravel外的DNS。
如果您有可以访问的Linux,你可以通过做测试:
apt-get install unixodbc
isql -v DSN_NAME db_username db_password
它应该回答有:
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
有一个在ccovey的源代码中的bug,并且现在,你应该改变的ODBCDriverConnection
到源:
/**
* Default grammar for specified Schema
* @return Schema\Grammars\Grammar
*/
protected function getDefaultSchemaGrammar()
{
return $this->withTablePrefix(new \Illuminate\Database\Schema\SqlServerGrammar);
}
我将在包打开的问题年龄Github所以他们得到这个固定的。
我得到错误SQLSTATE [IM002]未找到数据源名称,也没有指定默认驱动程序 –
您是在谈论https://github.com/ccovey/odbc-driver?你是如何安装它的? –
我遵循每一条指令,添加require到composer.json,我运行作曲家更新,控制台说安装ccovey/odbc-driver-l4,然后我配置为我上面说过,我得到了那个错误 –