Sql-Server
小號1090小號1090S1090unixODBC在n一世X這D乙CunixODBC驅動器M____一個___呃_Dr一世在和r米一種n一種G和rDriver Manager無效的字元串或緩衝區長度
發出時出現上述錯誤
isql 'odbc:Driver={ODBC Driver 11 for SQL Server};SERVER=<redacted>;DATABASE=<redacted>;' username password -v
在我的 Linux CentOS 6.7 上作為 root 使用者。
以下 bcp 命令有效,因此驅動程序應該可以正常工作:
bcp master.INFORMATION_SCHEMA.TABLES out OutFile.dat -S <redacted> -U user -P password
此命令也有效:
sqlcmd -Sg<redacted> -Uuser -Ppassword
此外,如果以 root 身份從命令行執行此 PHP 腳本,將返回錯誤:
<?php $connStr = 'odbc:Driver={ODBC Driver 11 for SQL Server};SERVER=<redacted>;DATABASE=<redacted>;'; $dbUser = '<redacted>'; $dbPass = '<redacted>'; $db = new PDO($connStr, $dbUser, $dbPass); ?> [root@ru000397 ~]# php prova.php PHP Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in /root/prova.php:6 Stack trace: #0 /root/prova.php(6): PDO->__construct('odbc:Driver={OD...', '<redacted>', '<redacted>') #1 /root/prova.php(10): db_connect() #2 {main} thrown in /root/prova.php on line 6
我已經安裝了 Microsoft ODBC Driver 11 for SQL Server for Linux ( https://msdn.microsoft.com/library/hh568451(SQL.110).aspx ) 和 unixODBC 2.3.0 沒有問題。
我的主要目標是能夠使用 ODBC 通過 PHP PDO 連接到 MS SQL 實例。
使用花括號時,PDO 連接無法為我找到驅動程序。刪除這些後,我就可以正常連接了。
請注意我對允許變數擴展的連接字元串使用雙引號。
$mssqldriver = 'ODBC Driver 11 for SQL Server'; $connStr = "odbc:Driver=$mssqldriver;SERVER=<redacted>;DATABASE=<redacted>;";