複数のphp配列を挿入ステートメントに入れてSQLデータベースに入れようとしています。プログラミングの経験があまりないので、これを試してみました。ただし、php配列をbindValueできないため、nullになります。どうすればこれを修正できますか。
$ firstnames、$ grants、$ surnames、$ birthdatesは、複数のユーザー名、生年月日、名前などのデータを含む4つの個別のphp配列です。
挿入するphpコード:
$query = $conn->prepare( "INSERT INTO ReserveerCursusCursisten
(Geslacht, Achternaam, Voorletters, Geboortedatum) VALUES (:geslachten, :achternamen, :voornamen, :geboortedata, 0, 0)");
for($i = 0; $i < count($achternamen); $i++)
{
$stmt->bindValue(':geslachten', $geslachten);
$stmt->bindValue(':achternamen', $achternamen);
$stmt->bindValue(':voornamen', $voornamen);
$stmt->bindValue(':geboortedata', $geboortedata);
$stmt->execute();
}
if ($stmt->execute())
{
echo "query is gelukt";
}
else
{
echo "query is niet gelukt";
}
これはクエリを作成する方法です。最初にSQL全体を作成し、次に値を各列と行にバインドします。
$query = "INSERT INTO ReserveerCursusCursisten
(Geslacht, Achternaam, Voorletters, Geboortedatum) VALUES ";
$subqueries = [];
for($ii=0; $ii< count($geslachten);$ii++) {
$subqueries []="(:ges$ii,:ach$ii,:voo$ii,:geb$ii)";
}
$query .= implode(",", $subqueries);
$stmt = $conn->prepare($query);
for($ii=0; $ii< count($geslachten);$ii++) {
$stmt->bindValue(":ges$ii", $geslachten[$ii]);
$stmt->bindValue(":ach$ii", $achternamen[$ii]);
$stmt->bindValue(":voo$ii", $voornamen[$ii]);
$stmt->bindValue(":geb$ii", $geboortedata[$ii]);
}
$stmt->execute();
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加