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_connect
は、次のように置き換えられます。mysqli_connect
-
mysql_error
は、次のように置き換えられます。mysqli_error
またはmysqli_connect_error
というように、文脈に応じて -
mysql_query
に置き換わります。mysqli_query
- など
注:いくつかの関数では、パラメータを注意深くチェックする必要があるかもしれません。もしかしたらあちこちで違いがあるかもしれませんが、それほど多くはないでしょう: mysql と mysqli はどちらも同じライブラリに基づいています。 (libmysql ; 少なくとも PHP <= 5.2 では)
例えば
-
を使用する場合、mysql の場合は
mysql_select_db
で接続し、どのデータベースでクエリを実行したいかを指定します。 -
一方 mysqli では、4 番目のパラメータとしてデータベース名を指定して
mysqli_connect
. -
それでも、また
mysqli_select_db
という関数もありますので、お好みでお使いください。
それが終わったら、新しいバージョンのスクリプトを実行してみてください...。そして、すべてがうまくいくかどうかチェックしてください。バグ探しの時間です ;-)
関連
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。
-
[解決済み】既に開始されているPHPセッション【重複あり
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] MySQLデータベースの名前を素早く変更する(スキーマ名を変更する)方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】php, mysql - データベースへの接続数が多すぎるエラー
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: バインドされた変数の数が102行目のトークンの数と一致しない [終了]
-
[解決済み】XAMPPエラー: www.example.com:443:0 サーバー証明書に、サーバー名と一致するIDが含まれていません。
-
[解決済み】PHP フェイタルエラー。未定義の関数mssql_connect()をコールしています。
-
[解決済み】警告。数値でない値に遭遇しました
-
[解決済み] 入力ファイルが指定されていない
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】Wordpressの子テーマのstyle.cssが効かない。
-
[解決済み】phpのシンタックスエラー、予期しないT_IFエラーを修正する方法は?[クローズド]。
-
[解決済み] 致命的なエラーです。mysqli_result 型のオブジェクトを使用できません [終了] 。