4

Windows 開発環境をセットアップしようとしています。Windows 8.1 with IIS 8.5 running SQL Server 2008RC2 and PHP 5.3.24

コードイグナイター 2.1.4

通常の PHP スクリプトで PDO を介して問題なくデータベースに接続できます。しかし、CodeIgniter 経由で接続しようとすると、次のエラーが発生します。

"Unable to connect to your database server using the provided settings.
Filename: C\inetpub\wwwroot\ci\system\database\DB_Driver.php
Line number 124"

IIS インターフェイスで PHP Manager を開くと、必要な 2 つのドライバーが有効になっていることがわかります。

php_sqlsrv_53_ts.dll
php_pdo_sqlsrv_53_ts.dll

それらの両方が私のiniファイルに表示されます。

私の CodeIgniter データベース構成ファイルでは、ドライバーを sqlsrv に設定しています (mssql を使用すると、空白の画面が表示されます)。

/system/database/drivers/sqlsrvCI インストールにドライバーがあります。

奇妙なのは、表示される [ phpinfo()Configure Command] の下だけですが、CI の外部で動作していることはわかっています--without-mssql--without-pdo-mssql

phpinfo()ini ファイルのパスC:\WINDOWSも表示されますが、読み込まれた ini パスも次のように表示されます。C:\Program Files (x86)\PHP\v5.3\php.ini

私はそれを動かそうとしましたが、うまくいきませんでした。

私の /application/config/database 設定ファイル:

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'localsql';
$db['default']['password'] = 'password';
$db['default']['database'] = 'elements';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

特定の何かが欠けていますか?

4

3 に答える 3

4

まず、変更

$db['default']['database'] = ‘elements;
$db['default']['dbdriver'] = ‘sq’lsrv;

$db['default']['database'] = 'elements';
$db['default']['dbdriver'] = 'sqlsrv';

あなたの設定ファイルで。

2 つ目は、ドライバー sqlsrv にバグがあります。開ける/system/database/drivers/sqlsrv/sqlsrv_driver.php

構成で許可するには、次の行をpconnect変更します89

$this->db_connect(TRUE);

return $this->db_connect(TRUE);

affected_rows正しく使用したい場合は、行を次274から変更してください

return @sqlrv_rows_affected($this->conn_id);

return @sqlsrv_num_rows($this->result_id);

affected_rows他の場所に投稿された修正方法の複数の提案を見ましたが、_execute使用しないように変更するScrollableと、セッションの検証にも sqlsrv を使用している場合、保存されたセッションが壊れます。

于 2013-12-26T15:35:30.460 に答える
1

データベース構成には以下が必要です

$db['default']['driver']='sqlsrv'; //your mistake
$db['default']['database']='your_database'; // your mistake
$db['default']['pconnect']=false;
于 2013-11-28T13:58:52.987 に答える