実行しましたaptitude install php5-mysql
(そしてMySQL / Apache 2を再起動しました)が、それでもこのエラーが発生します:
致命的なエラー:21行目の/home/validate.phpにある未定義の関数mysql_connect()を呼び出します
phpinfo()
/etc/php5/apache2/conf.d/pdo_mysql.iniファイルが解析されたと言います。
実行しましたaptitude install php5-mysql
(そしてMySQL / Apache 2を再起動しました)が、それでもこのエラーが発生します:
致命的なエラー:21行目の/home/validate.phpにある未定義の関数mysql_connect()を呼び出します
phpinfo()
/etc/php5/apache2/conf.d/pdo_mysql.iniファイルが解析されたと言います。
すでに PHP7 を使用している場合、以前は非推奨だった関数mysql_*
は完全に削除されているため、代わりに PDO 関数またはmysqli_*
関数を使用してコードを更新する必要があります。
それが不可能な場合は、回避策mysql_*
として、古い関数を-functionsで再作成する小さな PHP インクルード ファイルを作成しましたmysqli_*()
: fix_mysql.inc.php
これにUbuntuのタグを付けたことがわかりました。ほとんどの場合、MySQL ドライバー (およびおそらく MySQL) がインストールされていません。SSHまたはターミナル アクセスと sudo 権限があると仮定して、サーバーにログインし、これを実行します。
sudo apt-get install mysql-server mysql-client php5-mysql
MySQL パッケージまたは php5-mysql パッケージが既にインストールされている場合、これによりそれらが更新されます。
アップデート
この回答はまだ時折クリックされるため、更新してPHP 7を含めます。PHP 7 では MySQL 用に別のパッケージが必要になるため、apt-get コマンドには別の引数を使用する必要があります。
# Replace 7.4 with your version of PHP
sudo apt-get install mysql-server mysql-common php7.4 php7.4-mysql
そして重要なことに、mysql_connect()
PHP v5.5.0 以降では非推奨になっています。こちらの公式ドキュメントを参照してください: PHP: mysql_connect()
さて、これはあなたのチャンスです!PDOの準備ができているようです。代わりにそれを使用してください。
PHPMySQL拡張モジュールがロードされているかどうかを確認してみてください。
<?php
phpinfo();
?>
php.ini
そこにない場合は、ファイルに次を追加します。
extension=php_mysql.dll
docker php official imagesの問題で誰かがここに来た場合は、docker コンテナ内で以下のコマンドを入力してください。
$ docker-php-ext-install mysql mysqli pdo pdo_mysql
詳細については、上記のリンクを参照してくださいHow to install more PHP extensions
(ただし、私には少し難しいです...)。
または、このドキュメントが役立つ場合があります。
試す:
<?php
phpinfo();
?>
ページを実行して を検索しmysql
ます。見つからない場合は、シェルで次を実行し、Apache サーバーを再起動します。
sudo apt-get install mysql-server mysql-client php5-mysql
また、次のすべての行が apache2.conf (または conf.d/php.ini) ファイルのどこかでコメント解除されていることを確認してください。
;extension=php_mysql.so
に
extension=php_mysql.so
私の推測では、あなたの PHP インストールは MySQL をサポートするようにコンパイルされていません。
configure コマンドを確認してください ( php -i | grep mysql
)。のようなものが表示されるはずです'--with-mysql=shared,/usr'
。
http://php.net/manual/en/mysql.installation.phpで完全な手順を確認できます。ただし、@wanovak によって提案されたソリューションを使用したいと思います。
それでも、PDO を使用するには MySQL のサポートが必要だと思います。
次のようなエラーが発生する場合
致命的なエラー: 未定義関数 mysql_connect() の呼び出し
cPanel にログインしてください>> Select Php version をクリックしてください>>拡張子 MYSQLを選択してください
何らかの構文エラーがあるはずです。このコードをコピーして貼り付けて、動作するかどうかを確認してください。
<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
die('Could not connect:' . mysql_error());
}
echo 'Connected successfully';
?
同じエラーメッセージが表示されました。msql_connect()
の代わりに関数を使用していたことがわかりましたmysql_connect()
。
(Windows mysql 構成)
ステップ 1 : [Apache コントロール パネル] > [Apache] > [Config] > [PHP.ini] に移動します。
ステップ 2 : メモ帳 (Ctrl+F) で検索し;extension_dir = ""
ます;
。この行を次のように置き換えます: (文頭のextension_dir = "C:\php\ext"
を削除する必要はありません)。;
ステップ 3 : 検索対象:を先頭からextension=php_mysql.dll
削除します。;
ステップ 4 : Apache HTTP サーバーを保存して再起動します。(Windows では、これは通常 UI を介して行われます)
それでおしまい :)
見つからないというエラーが発生したphp_mysql.dll
場合は、おそらくこのファイルを php.net サイトまたは pecl.php.net からダウンロードする必要があります。(どこから入手するかは慎重に考えてください)