PHPでは、 MySQLI :: STMT_INIT関数は通常、データベース操作にMySQLI拡張機能を使用するときにSQLステートメントを初期化するために使用されます。他のMySQLI関数と組み合わせて使用すると、クエリを効率的に実行し、データを抽出できます。今日は、 mysqli :: stmt_initを使用した後、クエリ結果データをbind_resultメソッドと組み合わせて抽出する方法について説明します。
まず、 MySQLIオブジェクトを作成し、 STMT_INITメソッドを使用して、作成されたステートメントを初期化する必要があります。これは通常、データベースを照会する最初のステップです。例は次のとおりです。
<?php
// データベースに接続します
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// 接続が成功しているかどうかを確認してください
if ($mysqli->connect_error) {
die("接続に失敗しました: " . $mysqli->connect_error);
}
// 使用 stmt_init 初期化ステートメント
$stmt = $mysqli->stmt_init();
// 初期化が成功したかどうかを確認してください
if (!$stmt) {
die("无法初期化ステートメント: " . $mysqli->error);
}
?>
次に、準備方法を使用してSQLクエリを準備します。データベースからユーザー情報を照会し、次のようにSQLをクエリする必要があるとします。
<?php
$sql = "SELECT id, name, email FROM users WHERE status = ?";
$stmt->prepare($sql);
?>
SQLクエリに着信パラメーターが必要な場合、 bind_paramメソッドを使用してバインドできます。このメソッドの最初のパラメーターは、データ型( Sなどが文字列を表し、整数などを表します)を指定し、2番目と後続のパラメーターはバインドされる実際の値です。
<?php
$status = 'active'; // ステータスを照会したいとします 'active' ユーザー
$stmt->bind_param('s', $status);
?>
SQLクエリの準備ができてパラメーターがバインドされると、クエリを実行してbind_resultを使用して、クエリ結果をPHP変数にバインドできます。
<?php
// クエリを実行します
$stmt->execute();
// クエリの結果を変数にバインドします
$stmt->bind_result($id, $name, $email);
// クエリの結果を取得します
while ($stmt->fetch()) {
echo "ID: $id, Name: $name, Email: $email\n";
}
?>
上記のコードでは、 bind_resultを使用して、クエリの結果を$ id 、 $ name 、 $ email変数にバインドします。 Fetchメソッドを介して、結果セットのデータをラインごとに抽出して出力できます。
クエリを完了したら、ステートメントとデータベース接続を閉じることを忘れないでください。
<?php
$stmt->close();
$mysqli->close();
?>
クエリにURLまたはその他のリンクが含まれ、URLドメインをM66.NETに置き換える場合、クエリ結果で交換を行うことができます。クエリによって返された電子メールフィールドにURLが含まれていると仮定すると、次のように処理できます。