実行しました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ファイルが解析されたと言います。
回答:
さて、これはあなたのチャンスです!PDOの準備ができているようです。代わりにそれを使用してください。
PHPMySQL拡張モジュールがロードされているかどうかを確認してみてください。
<?php
phpinfo();
?>
そこにない場合は、php.ini
ファイルに以下を追加します。
extension=php_mysql.dll
mysql_*
関数は危険であり、PHP4.1では非推奨です。Apacheエラーログを確認し、サーバーを再起動します。それは動作しますか?
すでにPHP7を使用している場合は、以前は非推奨だった関数mysql_*
が完全に削除されているため、mysqli_*
代わりにPDO関数または関数を使用してコードを更新する必要があります。
それが不可能な場合は、回避策として、-functionsを使用して古いmysql_*
関数を再作成する小さなPHPインクルードファイルを作成しましたmysqli_*()
:fix_mysql.inc.php
これにUbuntuのタグを付けたようです。ほとんどの場合、MySQLドライバ(および場合によってはMySQL)がインストールされていません。あなたが持っていると仮定すると、SSHまたは端末にアクセスし、sudoの権限を、サーバにログインして、これを実行します。
sudo apt-get install mysql-server mysql-client php5-mysql
MySQLパッケージまたはphp5-mysqlパッケージがすでにインストールされている場合、これによりそれらが更新されます。
更新
この回答はまだ時々クリックされるので、私はそれを更新して含めるつもりです PHP7。PHP 7ではMySQLに別のパッケージが必要なため、apt-getコマンドに別の引数を使用する必要があります。
sudo apt-get install mysql-server mysql-common php7.0 php7.0-mysql
そして重要なことに、mysql_connect()
PHPv5.5.0以降は非推奨になっています。こちらの公式ドキュメントを参照してください:PHP:mysql_connect()
docker phpの公式画像の問題で誰かがここに来た場合は、dockerコンテナ内で以下のコマンドを入力してください。
$ docker-php-ext-install mysql mysqli pdo pdo_mysql
詳細については、上記のHow to install more PHP extensions
セクションのリンクを参照してください(ただし、私にとっては少し難しいです...)。
または、このドキュメントが役立つ場合があります。
mysql
私が欲しいのは
また、未定義のMySQL_connect()の同じ問題で立ち往生しました。PHP.iniファイルに変更を加えようとしましたが、同じエラーが発生していました。次に、このソリューションにたどり着き、コードを減価償却されたphp関数から新しい関数に変更しました。
$con=mysqli_connect($host,$user,$password);
mysqli_select_db($con,dbname);
//To select the database
session_start(); //To start the session
$query=mysqli_query($con,your query);
//made query after establishing connection with database.
これがお役に立てば幸いです。このソリューションは私にとって正しく機能しています。
編集:
古いphpからアップグレードする場合は、 apt-get install php7.0-mysql
php.iniファイル内
これを変える
;extension=php_mysql.dll
に
extension=php_mysql.dll
私の推測では、PHPのインストールはMySQLサポートでコンパイルされていません。
configureコマンド(php -i | grep mysql
)を確認してください。あなたは次のようなものを見るはずです'--with-mysql=shared,/usr'
です。
完全な手順については、http://php.net/manual/en/mysql.installation.phpで確認できます。ます。ただし、@ wanovakによって提案されたソリューションを使用したいと思います。
それでも、PDOを使用するにはMySQLのサポートが必要だと思います。
質問はでタグ付けされてubuntu
いますが、コメントを外す解決策はextension=mysqli.dll
Windowsに固有です。私はここで混乱していますか?!とにかく、最初に実行<? php phpinfo ?>
しmysql*
てConfiguration
見出しの下を検索します。そのようなものが表示されない場合は、インストールまたは有効化されていないことを意味しますphp-mysql
。したがって、最初にインストールしますphp-mysql
sudo apt get install php-mysql
このコマンドは、インストール済みのものにphp-mysql
応じてインストールphp
されるので、バージョンの心配はありません!!。
次に、UNIX固有のソリューションがありphp.ini
ます。ファイル内のコメント解除行
extension=msql.so
それは検証msql.so
存在であり/usr/lib/php/<timestamp_folder>
、
ELSE
extension=path/to/msql.so
次に、最後にapache
とmysql
サービスを再起動すると、見出しのmysql
下のセクションが表示さConfigrations
れます。phpinfo page
私が取り組んでいたプロジェクトがphp5.6で開発され、インストール後、プロジェクトをphp7.1で実行できなかったため、このエラーが発生していました。
ubuntu / nginxでVagrantを使用する人のために、nginxディレクトリ(/ etc / nginx /)には、vagrantmaschine用に構成されたurlのような名前のファイルを含む「sites-available」という名前のディレクトリがあります。私の場合はhomestead.appでした。このファイル内には、次のような行があります。
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
そこで、phpのバージョンをその特定のサイトに必要なものに変更できます。
これをグーグルで検索しましたが、どこを見て何を変更するかを示す簡単な答えを実際に見つけることができませんでした。
これが誰にでも役立つことを願っています。ありがとう。
次のようなエラーが発生した場合
致命的なエラー:未定義の関数mysql_connect()の呼び出し
親切にcPanelにログインします>> PHPバージョンの選択をクリックします>>拡張機能MYSQLを選択します
構文エラーがあるはずです。このコードをコピーして貼り付け、機能するかどうかを確認します。
<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
die('Could not connect:' . mysql_error());
}
echo 'Connected successfully';
?
同じエラーメッセージが表示されました。のmsql_connect()
代わりに関数を使用していたことがわかりましたmysql_connect()
。
(Windows mysql config)
ステップ1:Apacheコントロールパネル> Apache> Config> PHP.iniに移動します
ステップ2:メモ帳で検索(Ctrl + F):(;extension_dir = ""
コメントを付けることができます;
)。この行を次のように置き換えますextension_dir = "C:\php\ext"
(;
文の先頭のを削除する必要はありません)。
ステップ3:検索:最初にextension=php_mysql.dll
を削除し;
ます。
ステップ4:ApacheHTTPサーバーを保存して再起動します。(Windowsでは、これは通常UIを介して行われます)
それでおしまい :)
行方不明に関するエラーが発生したphp_mysql.dll
場合は、おそらくphp.netサイトまたはpecl.php.netからこのファイルをダウンロードする必要があります。(どこから入手するかについては注意してください)
C:\\php
システムにはありません。