PHP
MySQL

[PHP, MySQL] 配列データの一括INSERT

したいこと

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

$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;