2017-07-10 9 views
1

私はPHP 5のコードをphp7に変換する必要があります。 すべてのMySQL文は、このような機能を定義するスクリプトを使用して変換されます。mysqli_connect mysql_connectとの相違

function mysql_connect($host, $username, $password){ 
    global $dbconnect; 
    $dbconnect = mysqli_connect($host, $username, $password); 
    return $dbconnect; 
} 

いいことがある - それはPHP7に取り組んでいます。

これで、すべてのスクリプトをmysqli_connectを使って書き直しました。 しかし、mysqliを使用する最初の関数は失敗します。

mysqli_connect(): (HY000/1044): Access denied for user 

私はmysql_connectに切り替える場合は、それが動作し、次のmysqliのコマンドで再び失敗します。

なぜですか?

EDIT:接続の 完全なコード:すべてはmysql_コマンドで動作することを

function db_connect() 
{ 
    global $db_sql_hostname,$db_sql_database,$db_sql_user,$db_sql_password; 
    require_once 'db-config.php'; 
    global $db_handle;  
    $db_handle = mysqli_connect($db_sql_hostname, $db_sql_user, $db_sql_password, $db_sql_database) or die("Konnte nicht zum mySQL-Server verbinden: ".mysqli_error()); 
    mysqli_select_($db_sql_database, $db_handle) or die("Konnte die Datenbank ".$db_sql_database." nicht oeffnen: ".mysqli_error());  
    return $db_handle; 
} 

注意。変数は正しい!

EDIT2:

_Warning:mysqli_connect():これは、DB-config.phpのエラーをもたらすデータベース名(mysqli_connectの第四パラメータ)としてTRUE渡す

<?php 
    $db_sql_hostname = "hostIP"; 
    $db_sql_database = "dbname"; 
    $db_sql_dbuser  = "dbuser"; 
    $db_sql_dbpassword = "dbpassowrd"; 
?> 
+0

完全なエラーメッセージとは何ですか?必要に応じて、ユーザー/ホストを隠すことができます。 – aynber

+0

接続するデータベースを指定しましたか?私はmysqli_connect呼び出しの4番目のパラメータとしてそれを持っています。 –

+0

'mysqli_connect'を呼び出すコードが正しいパラメータを渡していない可能性があります... –

答えて

1

あります(/1044 HY000):アクセスが拒否されたユーザーのために '... '@' ...' データベースに '1' に...

変更行をする:

$db_handle = mysqli_connect($db_sql_hostname, $db_sql_dbuser, $db_sql_dbpassword) or die("Konnte nicht zum mySQL-Server verbinden: ".mysqli_error()); 
+0

エラーは次の行に変わります。mysqli_select_db()は、パラメータ1がmysqliになることを期待しています –

+0

ここに投稿したコードではmysqli_select_db()は記述されていませんでした。しかし '$ db_handle'をmysqli_select_db()に渡しますか? –

+0

私は完全な機能を追加しました。私はハンドルを渡す。 –

0

mysqli_connectは にmysql_connectがこのように正しいデータベースを指定し、真のあなたの問題を解決します

ソース取り除く mysql_connect(ip,user,password)

を必要とするパラメータ mysqli_connect(ip,user,password,database)

必要です:PHPのドキュメント

http://php.net/manual/en/function.mysqli-connect.php

を あなたの中に

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

+0

私は提案されたコードを投稿しました。しかし、私は動作しません。エラーは '警告:mysqli_select_db()はパラメータ1がmysqli、文字列は' ... 'であると想定しています。 –

0

function db_connect() 
{ 
    global $db_sql_hostname,$db_sql_database,$db_sql_user,$db_sql_password; 
    require_once 'db-config.php'; 
    global $db_handle;  
    $db_handle = mysqli_connect($db_sql_hostname, $db_sql_user, $db_sql_password, $db_sql_database) or die("Konnte nicht zum mySQL-Server verbinden: ".mysqli_error()); 
    mysqli_select_($db_sql_database, $db_handle) or die("Konnte die Datenbank ".$db_sql_database." nicht oeffnen: ".mysqli_error());  
    return $db_handle; 
} 

mysqli_select_()機能mysqli_select_db() なり、その後、最初のパラメータとしてデータベースすなわちの名前を$db_handleを指定する必要があります。 myslqi_select_db($db_handle,$db_sql_database)

より明確にするために、このドキュメントをご覧ください。 http://php.net/manual/en/mysqli.select-db.php

関連する問題