簡単な答えはいいえです 、機能は同等ではありません。
良いニュースは、変更する呼び出し/プロジェクトがたくさんある場合に役立つコンバーターツールがあることです。これにより、スクリプトをすぐに機能させることができます。
https://github.com/philip/MySQLConverterTool
これは、Oracleの元のバージョンのフォークバージョンであり、コーシャです。
とはいえ、コードを更新することはそれほど難しくありません。とにかく、オブジェクト指向の方法論に移行することをお勧めします...
1)接続
すべての目的と目的のために、たとえば、接続をPHP変数として保存する新しい接続関数が必要です。
$mysqli = new mysqli($host, $username, $password, $database);
$mysqli
への接続を保存したことに注意してください 。 $db
に保存できます または好きなものを使用できますが、コード全体でこれを使用して接続を参照する必要があります。
接続を開く前に、mysqliのエラーレポートを有効にすることを忘れないでください。
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
2)クエリ
注:MySQLiで使用可能なプリペアドステートメントを使用してSQLインジェクションから保護する必要があります。 PHPでSQLインジェクションを防ぐにはどうすればよいですか? をご覧ください。 、ただし、ここでは基本について説明します。
ここで、クエリに引数として接続を含める必要があります。その他のmysqli_
関数。手続き型コードでは、これが最初の引数です。OOでは、クラスメソッドのように記述します。
手順:
$result = mysqli_query($mysqli, $sql);
OO:
$result = $mysqli->query($sql);
3)結果を取得
結果のフェッチは、古いmysql_
と同様です。 手続き型の機能;
while ($row = mysqli_fetch_assoc($result))
ただし、$result
として はmysqliのオブジェクトになりました。オブジェクト関数呼び出しを使用できます;
while ($row = $result->fetch_assoc())
4)接続を閉じる
したがって、前と同じように、close関数に接続を含める必要があります。手続き上の議論として;
mysqli_close($mysqli);
そして、オブジェクト指向で関数を実行するオブジェクトとして;
$mysqli->close();
私がそれらすべてを経験したならば、私は永遠にここにいるでしょう、しかしあなたは考えを理解します。 ドキュメント をご覧ください。 詳細については。接続のクローズ、結果のリリース、またはエラーと行のカウント機能を変換することを忘れないでください。
基本的な経験則は、データベース接続を使用する関数の場合、今すぐ関数に含める必要があります(proceduralの最初の引数として、またはOOで関数を呼び出すために使用するオブジェクトとして)、または結果セットの場合関数をmysqli_
に変更するだけです。 または、結果セットをオブジェクトとして使用します。