2012-05-16 34 views
30

PHP、MySQL、Apacheをセットアップしました。 PHP用localhost()とうまくいっています。しかし、私がMySQLをダウンロードした後、それは報告します:致命的なエラー:未定義の関数を呼び出すmysql_connect()

Fatal error: Call to undefined function mysql_connect()

どうすればいいですか?

+0

からのみmysqliのを作っ

mysqli_connect("localhost","root","") 

それを使用するこれらの使用PHP v5.0では、他

を避けることができ あなたがパッケージをインストールした後は、Apacheを再起動しましたか? – Devator

+0

http://nz.php.net/manual/en/mysql.installation.php – zerkms

+1

あなたの質問に[mysql-error-1064]というタグが付けられています。あなたのスクリプトがMySQLと通信できない場合、どうすればよいですか? – Repox

答えて

6

PHPのインストールがmysqlサポートでコンパイルされていることを確認してください。 <?php phpinfo(); exit(); ?>を含むテスト用Webページを作成し、ブラウザにロードします。 MySQLのページを検索してください。表示されない場合は、MySQLサポート付きのPHPを再コンパイルするか、組み込みのPHPパッケージを再インストールする必要があります。

+4

ここからコピーしたソースはhttp://www.somacon.com/p109.php –

+1

はい、彼の助けを借りてオフコースです! –

+0

私も同様の問題があります。私のテストページにはMySQLが表示されません:https://jsfiddle.net/ad0gd90y/。代わりに私は "mysqlnd"だけを見た。 PHPの前にMySQLをインストールする必要がありますか?どのように私はMySQLのsupprtでPHPを再コンパイルするのですか?@RohitKumarChoudhary – rosemary

29

端末を開き、ベローコマンドを実行します。

sudo apt-get install mysql-server 

あなたはまた、mysqlの5用のPHPモジュールをインストールする必要がありますPHP実行している場合:バックスラッシュ:

sudo apt-get install php5-mysql 
1

アム使用して、Windows 8のnこの問題は、環境変数に

フォローを変更することで解決しましたこれらの手順: 私のコンピュータのプロパティ - >高度なシステム設定 - >環境変数を開きます。 'システム変数'で 'パス'を選択し、 '編集'をクリックしてください '変数値'に 'C:\ php;'を追加してくださいまたはphpがインストールされているパス。

[OK]をクリックし、設定を適用してシステムを再起動します。 これはうまくいくはずです。

4
PHP.INI 

あなたは(特にMySQL用のモジュールをロードします)以下のオプションを有効にするのを忘れた場合は、チェック:

; Directory in which the loadable extensions (modules) reside. 
; http://php.net/extension-dir 
; extension_dir = "./" 
; On windows: 
extension_dir = "ext" 
2

を私はRHEL6上でこの同じ問題を抱えていました。 /etc/php.dのmysql.iniファイルにはモジュール名しかありませんが、フルパス名が必要です。私RHEL6システム上で動作エントリは次のとおりです。

; Enable mysql extension module 

extension=/usr/lib64/php/modules/mysql.so 

ファイルを変更した後、私は、Apacheを再起動し、すべてが働きました。

14

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.

より:http://php.net/manual/en/function.mysql-connect.php

+0

これは受け入れられた答えとしてマークする必要があります - それでもmysql_ *呼び出しを使用するのは悪い習慣です。 – Skytiger

22

使用 "mysqli_connect"

$con = mysqli_connect("127.0.0.1","root","pass","your_database"); 

、それは仕事をつけよう、私はこれで私の問題を修正。

0

は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 
0

を有効にするために設置されたチェックと、このコードは、あなたに

<?php 

$servername = "localhost"; 
$username = "root"; 
$password = ""; 


$con = new mysqli($servername, $username, $password); 

?> 

を助けるが、 "サーバー名" を変更することができ、 「ユーザー名」と「パスワード」

0

ここでは簡単な修正があります:

すべてのプロがおそらくこの答えのために私を憎むでしょう。しかし、私はサーバで同じエラーが発生しました:致命的なエラー:未知のエラー:未定義の関数mysql_connect()を呼び出す PHP 7を使用していました。すべてのmysqlコードを書き直す時間がなかったので、 CPANELでPHP設定を探し、そのアカウントのバージョンをPHP 7の代わりにPHP 5.4のように変更します。その後、上記のエラーがなくてもコードはうまくいきました。

0

ソリューションは、アプリケーション全体にわたる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); 
    } 
} 
-1

ので、ちょうど追加しますそれはmysqli_cOnnectのように、問題を解決します。
また、コード行全体にmysqliを使用する必要があります。そうしないと、問題は再び発生します。
mysql_select_dbは、mysqL_select_dbになります。
これは、データベースを選択するためのものです。

おかげで、これはこのエラーは、あなたのPHPのバージョンV7.0のために来ている

1

に役立ちます願っています。あなたは私がmysqlの

関連する問題