PHPでは、クエリ操作にMySQLデータベースを使用する場合、通常、 MySQLI拡張機能を使用してSQLクエリを実行します。クエリを実行した後、特定の列のすべての結果を、後続の処理のために文字列にマージする必要がある場合があります。現時点では、 mysqli_resultとprode()関数は非常に便利なツールです。
この記事では、 mysqli_resultを介してクエリの結果を取得する方法を示し、 deprode()関数を使用してクエリ結果のデータの列を接続します。
まず、MySQLデータベースに接続する必要があります。ここで、サーバー上のMySQLデータベースを構成したと仮定します。
<?php
$servername = "localhost"; // データベースサーバーアドレス
$username = "root"; // データベースのユーザー名
$password = ""; // データベースパスワード
$dbname = "test_db"; // 使用されるデータベース名
// 接続を作成します
$conn = new mysqli($servername, $username, $password, $dbname);
// 接続が成功しているかどうかを確認してください
if ($conn->connect_error) {
die("接続に失敗しました: " . $conn->connect_error);
}
?>
次に、SQLクエリを実行して結果を取得する必要があります。ユーザーというテーブルがあると仮定しましょう。テーブルに電子メールである列があり、すべてのユーザーのメールアドレスを文字列にスプライスしたいと思います。
<?php
// クエリを実行します
$sql = "SELECT email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// クエリの結果を保存するには、空の配列を作成します email
$emails = array();
// トラバーサルクエリの結果,それぞれを置きます email 配列に保存します
while ($row = $result->fetch_assoc()) {
$emails[] = $row['email'];
}
// 使用 implode() 関数はすべての配列になります email 文字列に連結します
$emailList = implode(", ", $emails);
echo "すべてのユーザーのメールアドレス: " . $emailList;
} else {
echo "データは見つかりませんでした";
}
$conn->close();
?>
$ conn-> query($ sql) :このコード行はクエリを実行し、クエリ結果を$ result変数に保存します。
$ result-> fetch_assoc() :このコード行は、クエリ結果から各データ行を取得します。メール列のデータをループで配列$メールに追加します。
Inprode( "、"、$ emails) : Inprode()関数は、配列内のすべての要素(つまり、ユーザーのメールアドレス)をコンマとスペースのある文字列に連結します。
クエリ結果にデータがない場合、 $ result-> num_rowsは0を返し、適切な判断を下す必要があります。
mysqli_resultを使用してクエリ結果を取得する場合、SQLクエリによって返された結果が有効であることを確認してください。
<?php
$servername = "localhost"; // データベースサーバーアドレス
$username = "root"; // データベースのユーザー名
$password = ""; // データベースパスワード
$dbname = "test_db"; // 使用されるデータベース名
// 接続を作成します
$conn = new mysqli($servername, $username, $password, $dbname);
// 接続が成功しているかどうかを確認してください
if ($conn->connect_error) {
die("接続に失敗しました: " . $conn->connect_error);
}
// クエリを実行します
$sql = "SELECT email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// クエリの結果を保存するには、空の配列を作成します email
$emails = array();
// トラバーサルクエリの結果,それぞれを置きます email 配列に保存します
while ($row = $result->fetch_assoc()) {
$emails[] = $row['email'];
}
// 使用 implode() 関数はすべての配列になります email 文字列に連結します
$emailList = implode(", ", $emails);
echo "すべてのユーザーのメールアドレス: " . $emailList;
} else {
echo "データは見つかりませんでした";
}
$conn->close();
?>
mysqli_resultとinprode()関数を組み合わせることにより、クエリ結果にデータの列を簡単に取得し、文字列に連結することができます。このような方法は、特にクエリの結果を他のシステムに渡す必要がある場合、またはさらなるデータ処理を実行する必要がある場合、大量のデータを処理する場合に非常に役立ちます。