5

この「未定義の関数mysql_connect()の呼び出し」エラーでトラブルシューティングのためにインターネットを検索しましたが、推奨される手順のいずれも機能しません...

PHPからmysqlにアクセスしようとすると、このエラーが発生します。PHPバージョン5.2.17とMySQL5.1.68を使用しています(mysqlはphpの外部で実行されているため、テーブルやデータベースなどを作成してみました)。

php.iniの拡張機能のコメントを解除します。

extension=php_mysql.dll
extension=php_mysqli.dll

これらの拡張機能へのパスを指定しました。

また、PHPとMySQLの両方をPATH変数に追加しました。Apache2.2を使用しています。変更を加えるたびにサーバーを再起動しました。

これはデータベースにアクセスするためのphpの私のコードです(しかし、問題は構文にあるとは思いません):

<?php     
      $dbhost = 'localhost';
      $dbuser = 'root';
      $dbpass = 'pasw';
      $dbname = 'db';

      $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
      mysql_select_db($dbname);
?>

これを修正する方法がわかりません。他のトラブルシューティングのヒントを提案できますか?私は彼の問題にまったく慣れていません...MySQLを使用したいので、Webサイトを稼働させるときに、実際のサーバーで使用します。前もって感謝します!

編集:これはapacheログからのものです:

[Mon Mar 25 13:50:42 2013] [error] [client 127.0.0.1] PHP Fatal error:  Call to undefined function mysql_connect() in C:\\Web\\thenemis\\dbconnect.php on line 7, referer: http://localhost/thenemis/admin.php
[Mon Mar 25 13:50:42 2013] [error] [client 127.0.0.1] File does not exist: C:/Web/favicon.ico

EDIT2:これはphp情報からのものです(問題はphp.iniファイルのいくつかの不特定のパラメータにあると思います)。拡張機能とそれらへのパス以外の機能を指定する必要があることをどこにも読んだことがありませんが、おそらく私は間違っていました...あなたは何を提案しますか?

mysql

MySQL Support   enabled
Active Persistent Links 0
Active Links    0
Client API version  5.0.51a

Directive   Local Value Master Value
mysql.allow_persistent  On  On
mysql.connect_timeout   60  60
mysql.default_host  no value    no value
mysql.default_password  no value    no value
mysql.default_port  no value    no value
mysql.default_socket    no value    no value
mysql.default_user  no value    no value
mysql.max_links Unlimited   Unlimited
mysql.max_persistent    Unlimited   Unlimited
mysql.trace_mode    Off Off
4

4 に答える 4

6

すでに述べたように、mysqlが正しく実行されているかどうかを判断するにはphpinfo()を使用します。一般に、これ以上mysqlを使用するのではなく、mysqlihttp://php.net/manual/de/book.mysqli.phpと呼ばれる新しい改良バージョンのmysqlを使用する必要があります

さらに、method_existsメソッドで関数が存在するかどうかをプログラムで確認できます。

于 2013-03-25T13:44:01.947 に答える
3

これを使用してみてください:

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'pasw';
$dbname = 'db';

<?php
// Create connection
$con=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);

// Check connection
if (mysqli_connect_errno($con))
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
?>

MySQLのサポートはPHPから削除されるため、代わりにMySQLiまたはPDOの使用を開始してください。

:)

于 2013-03-25T13:54:21.303 に答える
2

PHPのインストールがmysqlサポートを使用してコンパイルされていることを確認します。を含むテストphpファイルを作成<?php phpinfo(); exit(); ?>し、ブラウザで実行します。ページでキーワード「MySQL」を検索します。表示されない場合は、MySQLサポートを使用してPHPを再コンパイルするか、それが組み込まれているPHPパッケージを再インストールする必要があります。

ターミナルを開き、次のコマンドを実行します。

sudo apt-get install mysql-server

PHPを実行している場合は、mysql用のphpモジュールもインストールする必要があります。

sudo apt-get install php5-mysql
于 2015-06-03T09:43:13.533 に答える
0

コンピューターのシステム変数にPHPのパスを設定し、パス値をに編集してC:/program files/php; で有効extension=php_mysqli.dllにしましたphp.ini

次に、この関数を使用しました

mysqli_connect($host,$username,$password)or die(mysql_error()); 

その後、システムが再起動します。それは私のために働いた。私はそれがあなたのために働くことを願っています。

于 2014-06-23T00:44:39.300 に答える