2014-03-26 216 views
0

我需要配置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,語法未找到

回答

3

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所以他們得到這個固定的。

+0

我得到錯誤SQLSTATE [IM002]未找到數據源名稱,也沒有指定默認驅動程序 –

+0

您是在談論https://github.com/ccovey/odbc-driver?你是如何安裝它的? –

+0

我遵循每一條指令,添加require到composer.json,我運行作曲家更新,控制檯說安裝ccovey/odbc-driver-l4,然後我配置爲我上面說過,我得到了那個錯誤 –