したいこと

以下のようなデータを保持しており、

$category = "碁";

$players = array();
$players[] = array("name" => "加賀", "gender" => "M");
$players[] = array("name" => "奈瀬", "gender" => "F");
$players[] = array("name" => "飯島", "gender" => "M");

こんな感じになるように、一括INSERTしたい!

category name gender
加賀 M
奈瀬 F
飯島 M

SQL文の生成

ゴールとなるINSERT文は、
INSERT INTO hogeTable (category, name, gender)
VALUES ('碁', '加賀', 'M'), ('碁', '奈瀬','F'), ('碁', '飯島', 'M');

である

以下のように生成する


$arrayValues = "";

foreach ($players as $player) {
    $name   = $player['name'];
    $gender = $player['gender'];
    $arrayValues[] = "('{$category}', '{$name}', '{$gender}')";
}

$sql = "INSERT INTO hogeTable (category, name, gender) VALUES " 
        .join(",", $arrayValues);

echo $sql;
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.