前の質問で説明したようにfreetds
、unixodbc
Lionにインストールされ、でテストされたisql
ので、PHPを使用してMSSQLに接続しようとしました。
$connection = odbc_connect('SMS_GTWY', 'username', 'password');
ただし、次のように返されます。
PHP Warning: odbc_connect(): SQL error: [iODBC][Driver Manager]Specified driver could not be loaded, SQL state IM003 in SQLConnect in testodbc.php line 3
[iODBC][Driver Manager]Specified driver could not be loaded
どうすれば修正できますか?
$ cat /tmp/odbc_trace
上記のPHPが実行された後のPS出力:
** iODBC Trace file
** Trace started on Fri Dec 14 18:03:27 2012
** Driver Manager: 03.52.0607.1008
[000000.000472]
php 7FFF738F8960 EXIT SQLConnect with return code -1 (SQL_ERROR)
SQLHDBC 0x7fbec48a77d0
SQLCHAR * 0x10e2e8ea8
SQLSMALLINT -3 (SQL_NTS)
SQLCHAR * 0x10e2e7300
SQLSMALLINT -3 (SQL_NTS)
SQLCHAR * 0x10e1873fa
SQLSMALLINT -3 (SQL_NTS)
[000000.000540]
php 7FFF738F8960 ENTER SQLError
SQLHENV 0x7fbec48a7560
SQLHDBC 0x7fbec48a77d0
SQLHSTMT 0x0 (SQL_NULL_HANDLE)
SQLCHAR * 0x7fff6d1adf42
SQLINTEGER * 0x7fff6d1adf3c
SQLCHAR * 0x7fff6d1adf48
SQLINTEGER 511
SQLSMALLINT * 0x7fff6d1adf3a
[000000.000598]
php 7FFF738F8960 EXIT SQLError with return code 0 (SQL_SUCCESS)
SQLHENV 0x7fbec48a7560
SQLHDBC 0x7fbec48a77d0
SQLHSTMT 0x0 (SQL_NULL_HANDLE)
SQLCHAR * 0x7fff6d1adf42
| IM003 |
SQLINTEGER * 0x7fff6d1adf3c (0)
SQLCHAR * 0x7fff6d1adf48
| [iODBC][Driver Manager]Specified driver |
| could not be loaded |
SQLINTEGER 511
SQLSMALLINT * 0x7fff6d1adf3a (59)
[000000.000784]
php 7FFF738F8960 ENTER SQLFreeConnect
SQLHDBC 0x7fbec48a77d0
[000000.000807]
php 7FFF738F8960 EXIT SQLFreeConnect with return code 0 (SQL_SUCCESS)
SQLHDBC 0x7fbec48a77d0