2016-07-15 20 views
1

PHPでSQLサーバに接続しようとしています。私はSQL Server用のMicrosoft ODBCドライバ13をインストールしており、 'isql'コマンドを使ってテストしています。今私はPHPでサーバーに接続しようとしているとき、常にクラッシュし、 "httpエラー500"と言う。ここでは、コードは次のとおりです。Ubuntuで未定義の関数odbc_connect()を呼び出す

<?php 
$server = merkur.edikt.local; 
$database = ITServiceE; 
$connection = odbc_connect("Driver={ODBC DRIVER 13 for SQL Server}; 
    Server=$server;Database=$database;", 
    'user', 
    'PW' 
); 
echo "connected"; 
?> 

私はUbuntuの16.04サーバーとのApache2とPHP 7. を使用しています私は(ApacheはODBCドライバにアクセスすることができる場合)、それはApacheのアクセス権に問題があるかもしれないと思うが、私はないですこれがどのように機能するかは本当に確かです 編集:ここでは はApacheのエラーからのログです:

PHP Notice: Use of undefined constant merkur - assumed 'merkur' in   /var/www/html/index.php on line 2 
PHP Notice: Use of undefined constant edikt - assumed 'edikt' in /var/www/html/index.php on line 2 
PHP Notice: Use of undefined constant local - assumed 'local' in /var/www/html/index.php on line 2 
PHP Notice: Use of undefined constant ITServiceE - assumed 'ITServiceE' in /var/www/html/index.php on line 3 
PHP Fatal error: Uncaught Error: Call to undefined function odbc_connect() in /var/www/html/index.php:4\nStack trace:\n#0 {main}\n thrown in /var/www/html/index.php on line 4 

と空で、ODBCINST.INIは、次のようになりますodbc.iniファイル:未定義の関数へ

[ODBC Driver 13 for SQL Server] 
Description=Microsoft ODBC Driver 13 for SQL Server 
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0 
Threading=1 
UsageCount=2 
+0

Apacheログを見ましたか? ( '/ var/log/apache2/error.log'はApacheのエラーがUbuntu 16.04に記録されるデフォルトの場所です)あなたの質問を編集し、'/etc/odbc.ini'と '/ etc/etc/odbcinst.ini'ファイル? –

+0

ヒントありがとう、私は質問を編集しました –

答えて

1

コールodbc_connect()手段あなたのPHPシステムはその名前の関数を持っていません。

純粋なPHPで書かれたユーザー関数ではなく、PHP拡張モジュールの関数であるため、such extensionがインストールされていないことを意味します。 PHP拡張モジュールがSQL Serverドライバと同じではないことに注意する価値があります(の両方が)。

あなたのコードには、文字列であると思われる未定義の定数も含まれています。開発ボックスで完全なエラー報告を有効にすることを強くお勧めします。単純なエラーについては、エラーログを確認する必要はありません。

+0

あなたの助言をありがとうが、私はインターネットを検索し、私はまだ[拡張機能](http://php.net/manual/en/odbc)をインストールする方法を理解していません。 installation.php)。これでも助けてくれますか? –

+0

私は最終的にそれを見つけた気にしない。私はちょうどsudo apt-get php7.0-odbcをインストールする –

関連する問題