web-dev-qa-db-ja.com

PHPおよびLinuxを介してpdoを使用してmssqlに接続する方法は?

次のコードを使用して、新しい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
25
richie

PDO mssqlドライバーはもうありません。sqlsrv(phpウィンドウの下)またはdblib(php linuxの下)を使用してください

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

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

31
James

Ubuntu 14.04を実行しています。 MSSQLに接続しようとすると、「キャッチできなかった例外「PDOException」というメッセージと「ドライバーが見つかりませんでした」というメッセージが表示されました」。 dblib/sybase PHP拡張モジュールがありませんでした。

私は走らなければなりませんでした:

Sudo apt-get install php5-sybase freetds-common libsybdb5 \ 
&& Sudo Apache2ctl restart

現在は正常に動作します。

4
Karl Wilbur

試してみる

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

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

OR

$hostname.','.$port;
1
csi

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

乾杯、

0
Shivashish