94

実行しましたaptitude install php5-mysql(そしてMySQL / Apache 2を再起動しました)が、それでもこのエラーが発生します:

致命的なエラー:21行目の/home/validate.phpにある未定義の関数mysql_connect()を呼び出します

phpinfo()/etc/php5/apache2/conf.d/pdo_mysql.iniファイルが解析されたと言います。

4

14 に答える 14

88

すでに PHP7 を使用している場合、以前は非推奨だった関数mysql_*は完全に削除されているため、代わりに PDO 関数またはmysqli_*関数を使用してコードを更新する必要があります。

それが不可能な場合は、回避策mysql_*として、古い関数を-functionsで再作成する小さな PHP インクルード ファイルを作成しましたmysqli_*(): fix_mysql.inc.php

于 2016-06-17T09:15:04.057 に答える
61

これに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()

于 2012-12-11T17:31:45.400 に答える
58

さて、これはあなたのチャンスです!PDOの準備ができているようです。代わりにそれを使用してください。

PHPMySQL拡張モジュールがロードされているかどうかを確認してみてください。

<?php
    phpinfo();
?>

php.iniそこにない場合は、ファイルに次を追加します。

extension=php_mysql.dll
于 2012-12-11T17:13:48.940 に答える
51

docker php official imagesの問題で誰かがここに来た場合は、docker コンテナ内で以下のコマンドを入力してください。

$ docker-php-ext-install mysql mysqli pdo pdo_mysql

詳細については、上記のリンクを参照してくださいHow to install more PHP extensions(ただし、私には少し難しいです...)。

または、このドキュメントが役立つ場合があります。

https://docs.docker.com/samples/library/php/

于 2016-08-04T03:07:28.187 に答える
9

試す:

<?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
于 2012-12-11T17:39:44.947 に答える
4

私の推測では、あなたの PHP インストールは MySQL をサポートするようにコンパイルされていません。

configure コマンドを確認してください ( php -i | grep mysql)。のようなものが表示されるはずです'--with-mysql=shared,/usr'

http://php.net/manual/en/mysql.installation.phpで完全な手順を確認できます。ただし、@wanovak によって提案されたソリューションを使用したいと思います。

それでも、PDO を使用するには MySQL のサポートが必要だと思います。

于 2012-12-11T17:40:41.270 に答える
-1

次のようなエラーが発生する場合

致命的なエラー: 未定義関数 mysql_connect() の呼び出し

cPanel にログインしてください>> Select Php version をクリックしてください>>拡張子 MYSQLを選択してください

于 2016-05-04T08:19:16.017 に答える
-3

何らかの構文エラーがあるはずです。このコードをコピーして貼り付けて、動作するかどうかを確認してください。

<?php
    $link = mysql_connect('localhost', 'root', '');
    if (!$link) {
        die('Could not connect:' . mysql_error());
    }
    echo 'Connected successfully';
    ?

同じエラーメッセージが表示されました。msql_connect()の代わりに関数を使用していたことがわかりましたmysql_connect()

于 2015-07-11T18:10:00.530 に答える
-3

(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 からダウンロードする必要があります。(どこから入手するかは慎重に考えてください)

PHP の詳細: Windows での拡張機能のインストール - マニュアル

于 2016-04-24T14:29:24.247 に答える