PHP、MySQL、Apacheをセットアップしました。 PHP用localhost()
とうまくいっています。しかし、私がMySQLをダウンロードした後、それは報告します:致命的なエラー:未定義の関数を呼び出すmysql_connect()
Fatal error: Call to undefined function mysql_connect()
どうすればいいですか?
PHP、MySQL、Apacheをセットアップしました。 PHP用localhost()
とうまくいっています。しかし、私がMySQLをダウンロードした後、それは報告します:致命的なエラー:未定義の関数を呼び出すmysql_connect()
Fatal error: Call to undefined function mysql_connect()
どうすればいいですか?
PHPのインストールがmysqlサポートでコンパイルされていることを確認してください。 <?php phpinfo(); exit(); ?>
を含むテスト用Webページを作成し、ブラウザにロードします。 MySQLのページを検索してください。表示されない場合は、MySQLサポート付きのPHPを再コンパイルするか、組み込みのPHPパッケージを再インストールする必要があります。
ここからコピーしたソースはhttp://www.somacon.com/p109.php –
はい、彼の助けを借りてオフコースです! –
私も同様の問題があります。私のテストページにはMySQLが表示されません:https://jsfiddle.net/ad0gd90y/。代わりに私は "mysqlnd"だけを見た。 PHPの前にMySQLをインストールする必要がありますか?どのように私はMySQLのsupprtでPHPを再コンパイルするのですか?@RohitKumarChoudhary – rosemary
端末を開き、ベローコマンドを実行します。
sudo apt-get install mysql-server
あなたはまた、mysqlの5用のPHPモジュールをインストールする必要がありますPHP実行している場合:バックスラッシュ:
sudo apt-get install php5-mysql
を私のソリューションは、(私は最後のスラッシュ(NBを除去するために必要ここにあります)PHPIniDir 'c:\PHP\'
から):Fatal error: Call to undefined function mysql_connect() cannot solve
アム使用して、Windows 8のnこの問題は、環境変数に
フォローを変更することで解決しましたこれらの手順: 私のコンピュータのプロパティ - >高度なシステム設定 - >環境変数を開きます。 'システム変数'で 'パス'を選択し、 '編集'をクリックしてください '変数値'に 'C:\ php;'を追加してくださいまたはphpがインストールされているパス。
[OK]をクリックし、設定を適用してシステムを再起動します。 これはうまくいくはずです。
PHP.INI
あなたは(特にMySQL用のモジュールをロードします)以下のオプションを有効にするのを忘れた場合は、チェック:
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"
を私はRHEL6上でこの同じ問題を抱えていました。 /etc/php.dのmysql.iniファイルにはモジュール名しかありませんが、フルパス名が必要です。私RHEL6システム上で動作エントリは次のとおりです。
; Enable mysql extension module
extension=/usr/lib64/php/modules/mysql.so
ファイルを変更した後、私は、Apacheを再起動し、すべてが働きました。
PHP 7.0へのアップグレード後にこのエラーが発生した場合は、廃止予定のライブラリを使用しています。ここ
mysql_connect — Open a connection to a MySQL Server
Warning
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used.
これは受け入れられた答えとしてマークする必要があります - それでもmysql_ *呼び出しを使用するのは悪い習慣です。 – Skytiger
使用 "mysqli_connect"
$con = mysqli_connect("127.0.0.1","root","pass","your_database");
、それは仕事をつけよう、私はこれで私の問題を修正。
はmysqliのモジュールは、お使いのPHPのバージョン
$ ls /etc/php/7.0/mods-available/mysql*
/etc/php/7.0/mods-available/mysqli.ini /etc/php/7.0/mods-available/mysqlnd.ini
モジュール
$ sudo phpenmod mysqli
を有効にするために設置されたチェックと、このコードは、あなたに
<?php
$servername = "localhost";
$username = "root";
$password = "";
$con = new mysqli($servername, $username, $password);
?>
を助けるが、 "サーバー名" を変更することができ、 「ユーザー名」と「パスワード」
ここでは簡単な修正があります:
すべてのプロがおそらくこの答えのために私を憎むでしょう。しかし、私はサーバで同じエラーが発生しました:致命的なエラー:未知のエラー:未定義の関数mysql_connect()を呼び出す PHP 7を使用していました。すべてのmysqlコードを書き直す時間がなかったので、 CPANELでPHP設定を探し、そのアカウントのバージョンをPHP 7の代わりにPHP 5.4のように変更します。その後、上記のエラーがなくてもコードはうまくいきました。
ソリューションは、アプリケーション全体にわたるmysqli
代わりのmysql
の使用を開始するには、これらのようなアダプタの機能を使用することができます:あなたのコード行でmysql_connect
を使用しているときに問題が現れる
if (!function_exists('mysql_connect')) {
function mysql_connect($host = '', $user = '', $password = '', $database = '', $port = 0, $socket = '') {
return mysqli_connect($host, $user, $password, $database, $port, $socket);
}
}
if (!function_exists('mysql_select_db')) {
function mysql_select_db($link, $dbname) {
mysqli_select_db($link, $dbname);
}
}
ので、ちょうど追加しますそれはmysqli_cOnnect
のように、問題を解決します。
また、コード行全体にmysqli
を使用する必要があります。そうしないと、問題は再び発生します。
例mysql_select_db
は、mysqL_select_db
になります。
これは、データベースを選択するためのものです。
おかげで、これはこのエラーは、あなたのPHPのバージョンV7.0のために来ている
に役立ちます願っています。あなたは私がmysqlの
からのみmysqliのを作っ
それを使用するこれらの使用PHP v5.0では、他
を避けることができ あなたがパッケージをインストールした後は、Apacheを再起動しましたか? – Devator
http://nz.php.net/manual/en/mysql.installation.php – zerkms
あなたの質問に[mysql-error-1064]というタグが付けられています。あなたのスクリプトがMySQLと通信できない場合、どうすればよいですか? – Repox