2

Apache で PHP5 を実行している MSSQL 2012 Express データベースに接続しようとすると、大きな問題が発生します。テストセットアップとして、Windows 7 マシンで PHP 5.4.4 と Apache を実行する XAMPP をインストールしました。

私のPHPコード(phpmssql_genxml.php):

$connection = mssql_connect('192.168.40.150', $username, $password);
if (!$connection) {  die('Not connected : ' . mssql_get_last_message());} 


$db_selected = mssql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mssql_get_last_message());
} 


$query = "SELECT * FROM Cust WHERE 1";
$result = mssql_query($query);
if (!$result) {  
  die('Invalid query: ' . mssql_get_last_message());
} 

サイトに入ろうとしたときの出力:

Fatal error: Call to undefined function mssql_connect() in C:\xampp\htdocs\phpmssql_genxml.php on line 13

ユーザー名とパスワードを文字列にハードコードしようとしても、同じ結果が得られます。Google でよく検索しましたが、私の問題を解決した投稿がまだ見つかりませんでした:/ DB インスタンス パイプの TCP/IP を有効にし、特定の TCP ポートを割り当てようとしました。Win7 ファイアウォールで、標準ポート 1433 へのすべてのトラフィックを許可するルールを作成しました。それでもうまくいきません。

アイデアはありますか?? 「致命的なエラー」の部分は何を意味しますか? 接続しようとしたときのApacheエラー、PHP、またはデータベースエラーですか??

4

2 に答える 2

2

PHP セットアップに MSSQL ドライバーがありません。ページに記載されている必要なシステム構成があると仮定して、ここからダウンロードします。

彼らの指示からのセットアップ:

  1. SQLSRV30.EXE を一時ディレクトリにダウンロードします。
  2. SQLSRV30.EXE を実行します。
  3. プロンプトが表示されたら、PHP 拡張機能ディレクトリへのパスを入力します。
  4. ファイルを解凍したら、次の手順について SQLSRV30_Readme.htm ファイルのインストール セクションを読みます。

また、MSSQL を使用する場合は、*AMP パッケージではなく、標準の Apache + PHP インストールを使用することをお勧めします。

于 2012-09-06T05:37:33.377 に答える
1

SQLSRV30 を使用する必要はありません。これは私が必要としていた解決策ではありませんでしたが、便利だと思う人もいるかもしれません。XAMPP + php5.5.9 + MSSQL2012 を実行しているローカル開発環境があり、mssql 関数を使用する必要がありました。これは、サーバーでの作業で使用するものだからです。だから私はfreetdsを使用し、「幸運にも」これを見つけました:

https://moodle.org/mod/forum/discuss.php?d=232844

ユーザーの 1 人が既に私の php バージョン用に php_dblib.dll TS と NTS をコンパイルしている場合、私はすべてが機能しており、開発チームが慣れ親しんでいるすべての MSSQL 関数を使用していると言えます。mssql サポートの拡張機能は、常にコンパイルできます。

于 2014-05-23T11:05:34.523 に答える