1. ホーム
  2. php

mysqlをmysqliに変更する方法は?

2023-11-06 02:13:08

質問

私は通常のmysqlのために使用する以下のコードに基づいて、私はどのようにmysqliを使用するためにそれを変換することができますか?

それは mysql_query($sql);mysqli_query($sql); ?

<?PHP

//in my header file that is included on every page I have this
$DB["dbName"] = "emails";
$DB["host"] = "localhost";
$DB["user"] = "root";
$DB["pass"] = "";
$link = mysql_connect($DB['host'], $DB['user'], $DB['pass']) or die("<center>An Internal Error has Occured. Please report following error to the webmaster.<br><br>".mysql_error()."'</center>");
mysql_select_db($DB['dbName']);
// end header connection part

// function from a functions file that I run a mysql query through in any page.
function executeQuery($sql) {
    $result = mysql_query($sql);
    if (mysql_error()) {
        $error = '<BR><center><font size="+1" face="arial" color="red">An Internal Error has Occured.<BR> The error has been recorded for review</font></center><br>';
        if ($_SESSION['auto_id'] == 1) {
            $sql_formatted = highlight_string(stripslashes($sql), true);
            $error .= '<b>The MySQL Syntax Used</b><br>' . $sql_formatted . '<br><br><b>The MySQL Error Returned</b><br>' . mysql_error();
        }
        die($error);
    }
    return $result;
}

// example query ran on anypage of the site using executeQuery function
$sql='SELECT auto_id FROM friend_reg_user WHERE auto_id=' .$info['auto_id'];
$result_member=executequery($sql);
if($line_member=mysql_fetch_array($result_member)){
    extract($line_member);
} else {
    header("location: index.php");
    exit;
}
?>

どのように解決するのですか?

まず最初に行うべきことは、すべての mysql_* 関数呼び出しを同等の mysqli_* 少なくとも、手続き型 API を使用する気があるなら、手続き型 API である MySQL API に基づいたコードをすでに持っていることを考えると、これはより簡単な方法でしょう。

それを助けるために MySQLi 拡張関数の概要 は間違いなく役に立つと証明するものです。

たとえば

注:いくつかの関数では、パラメータを注意深くチェックする必要があるかもしれません。もしかしたらあちこちで違いがあるかもしれませんが、それほど多くはないでしょう: mysql と mysqli はどちらも同じライブラリに基づいています。 (libmysql ; 少なくとも PHP <= 5.2 では)

例えば

  • を使用する場合、mysql の場合は mysql_select_db で接続し、どのデータベースでクエリを実行したいかを指定します。
  • 一方 mysqli では、4 番目のパラメータとしてデータベース名を指定して mysqli_connect .
  • それでも、また mysqli_select_db という関数もありますので、お好みでお使いください。


それが終わったら、新しいバージョンのスクリプトを実行してみてください...。そして、すべてがうまくいくかどうかチェックしてください。バグ探しの時間です ;-)