web-dev-qa-db-ja.com

PHP 7はsqlsrvを初期化できません

Php 7 VC14 x64スレッドセーフでsqlsrv dllの解決策を見つけるために一日中検索しましたが、解決策が見つかりませんでした。誰かがこの問題を解決しましたか?

[04-Oct-2015 19:48:05 UTC] PHP Warning:  PHP Startup: pdo_sqlsrv: Unable to initialize module
Module compiled with module API=20131226
PHP    compiled with module API=20141001
These options need to match
 in Unknown on line 0

ここに私のphp7 RC4情報があります:

System  Windows NT 6.0 build 6002 (Windows Server 2008 Standard Edition Service Pack 2) AMD64
Build Date  Sep 29 2015 17:15:28
Compiler    MSVC14 (Visual C++ 2015)
Architecture    x64
9

sqlsrvはまだPHP7に対応していませんが、2012年以降リリースされていません。最後のリリースは2015年5月からです。メンテナはMicrosoftで、PHP7のバージョンは来年の初めに計画されています。

https://github.com/Azure/msphpsql/issues/58

更新:

ドライバーはPHP Linuxでも現在7.1バージョンまで利用可能です(2017年3月))。

https://github.com/Microsoft/msphpsql

13
kba

将来の参考のために(XamppおよびPHP 7.0.13を使用してWindows 7でテスト):

  1. ダウンロードしてインストールODBCここにドライバ: https://www.Microsoft.com/en-US/download/details.aspx?id=36434

  2. DLLこちらからダウンロードしてください(7.0。と7.1。の両方が見つかります): https://github.com/Microsoft/msphpsql/releases

  3. "php.ini"ファイルを開き、 "extension_dir"行を探します。これにより、DDLファイルの配置場所がわかります。 :Xamppでは、「C:\ xampp\php\ext

enter image description here

  1. DLLファイルには、拡張ディレクトリのZipアーカイブに含まれます。適切なバージョンを選択してください。適切なバージョンを選択してください。:最初はx64バージョンを使用しようとしましたが、機能しませんでした。その後、DLLをx86バージョンに置き換えて、ようやく機能しました。

enter image description here

  1. "php.ini"ファイルに戻り、次の行を追加する必要があります: "extension = php_pdo_sqlsrv_7_ts.dll"。 :Xamppはトレッドセーフバージョンを使用します。

enter image description here

  1. Apacheサービスを必ず再起動してください。

enter image description here

テスト用のコードサンプル:

$db = "the name of your database"
$password = "password";
$server = "IP address or named pipe";
$user = "username"

try {

    $connection = new PDO(
        "sqlsrv:Server=" . $server . 
            ";Database=" . $db, 
        $password, 
        $user
    );

    $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $exception) {

    var_dump($exception);
}

参考までに、SQLサーバーライブラリへの直接リンクはこちら

php 7の場合はsqlsrv

Tsとntsの両方の32ビットと64ビットバージョン

1
magallanes