1. ホーム
  2. マイスル

php7 using mysql extension, Uncaught Error: xxx で未定義の関数 mysql_connect() をコールしています。

2022-02-21 04:53:59
<パス

phpのバージョン番号

C:\Users\aaron>php -version
PHP 7.1.10 (cli) (built: Sep 26 2017 20:04:32) ( ZTS MSVC14 (Visual C++ 2015) x64 )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

データベースリンクのコードを実行する

このコードは有害です、v7バージョンはもう動作しません


以下を使用します。

close();
? >

参考 http://blog.csdn.net/liu_xueping/article/details/52251067

質問

致命的なエラーです。Uncaught Error: E:/... の未定義関数 mysql_connect() への呼び出し。

これは、mysqlデータベースへのリンクに問題があることを意味します。

phpinfo();を実行すると、以下の2つのphpの構成が確認できます。

<テーブル キー 値 設定ファイル(php.ini)のパス C:\WINDOWS ロードされた設定ファイル (なし)

問題発見!C:⇄WINDOWSの下にもphp.iniがなく、Loaded Configuration Fileも空っぽです。

解決方法

  1. php インストールのルートディレクトリにある php.ini-development ファイル (php.ini-production という名前を見て、これは本番環境用に設定されていることがわかります) を見つけて php.ini にリネームし、 extension=php_mysql.dll と mysqli.dll の前のセミコロン extension=php_ を削除してください。

  2. php_mysql.dll および php_mysqli.dll ファイルがあるかどうか、そのフォルダを確認してください。

  3. 次に、php.ini で extension_dir="your path" の前のセミコロンが削除されているかどうかを確認し、削除されていなければ、その前のセミコロンを削除してください。

  4. 最後に、php.ini ファイルを C:\windows ディレクトリにコピーし、php_mysql.dll と php_mysqli.dll ファイルを C:\WindowsSystem32 ディレクトリにコピーしてください。

  5. サービスを再起動します。

PHP v7 非推奨の拡張機能

https://stackoverflow.com/questions/34903896/what-happened-to-php-mysql-dll

https://wiki.php.net/rfc/remove_deprecated_functionality_in_php7

以下の拡張子は推奨されません。
ext/ereg (PHP 5.3 以降; ext/pcre を代わりに使ってください) REMOVED (PECL 拡張モジュール)
ext/mysql (PHP 5.5 以降; ext/mysqli あるいは ext/pdo_mysql を使ってください) REMOVED (PECL 拡張モジュール)

ということで、上記の解決策のphp_mysql.dllは見つからないので、php_pdo_mysql.dllに置き換えます。