簡體   English   中英

如何通過PHP和Linux使用pdo連接到mssql?

[英]How to connect to mssql using pdo through PHP and Linux?

我正在嘗試使用以下代碼進行新的PDO連接。

new PDO("mssql:driver=????;Server={$serverName};Database={$databaseName}", $username, $password, array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

我不確定要使用哪些驅動程序? 或者如何安裝它們。 我可以使用PHP中的mssql_connect函數完美地連接,但我想使用PDO庫。

我對mssql的php.ini設置是:

ssql

MSSQL Support   enabled
Active Persistent Links     0
Active Links    1
Library version     FreeTDS

Directive   Local Value Master Value
mssql.allow_persistent  On  On
mssql.batchsize 0   0
mssql.charset   no value    no value
mssql.compatability_mode    Off Off
mssql.connect_timeout   5   5
mssql.datetimeconvert   On  On
mssql.max_links Unlimited   Unlimited
mssql.max_persistent    Unlimited   Unlimited
mssql.max_procs Unlimited   Unlimited
mssql.min_error_severity    10  10
mssql.min_message_severity  10  10
mssql.secure_connection Off Off
mssql.textlimit Server default  Server default
mssql.textsize  Server default  Server default
mssql.timeout   60  60

PDO mssql驅動程序不再使用sqlsrv (在php windows下)或dblib (在php linux下)

http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx

http://www.php.net/manual/en/ref.pdo-dblib.php

我正在運行Ubuntu 14.04。 試圖連接到MSSQL我得到了“未捕獲的異常'PDOException',消息'找不到驅動程序'”。 似乎我缺少dblib / sybase PHP擴展。

我不得不跑:

sudo apt-get install php5-sybase freetds-common libsybdb5 \ 
&& sudo apache2ctl restart

現在工作正常。

嘗試

$dbh = new PDO ("mssql:host=$hostname;dbname=$dbname","$username","$pw");

$hostname may need to be configured as either...
$hostname.':'.$port;

要么

$hostname.','.$port;

由Karl Wilbur發布的dblib / sybase PHP擴展提示為我工作。 現在顯示LimeSurvey的安裝前檢查頁面

PHP PDO驅動程序庫 - Microsoft SQL Server(dblib),MySQL

只需確保找到並安裝與您正在使用的PHP版本一致的版本;

Prompt>sudo apt-get install php<appropriate version>-sybase freetds-common libsybdb5 Prompt>sudo apache2ctl restart

干杯,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM