私は名前の配列を持っています。私のテーブル構造は次のとおりです。
id | name
配列の各名前をテーブルの個別の行に挿入する最良の方法は何ですか?
id | name
1 | John
2 | James
PHPで配列をループすることを考えていましたが、もっと良い方法があるはずですか?
例として MySQli を使用します。
$DB = new mysqli ("Server","username","password","database");
$Array = array("Daryl", "AnotherName");
foreach ($Array AS $Names){
$Query = $DB->prepare("INSERT INTO Table (Name) VALUES (?)");
$Query->bind_param('s',$Names);
$Query->execute();
$Query->close();
}
最善の方法は、foreach を使用して配列をループして個々の値を取得することです。次に、次の値にループする前に、現在の値に対して挿入を実行します。
prepare
より良い練習のための@Daryl Gillへの小さな改善
// List of names to insert
$names = array("Daryl", "AnotherName");
// Prepare once
$sh = $db->prepare("INSERT INTO tblname (Name) VALUES (?)");
foreach ($names AS $name){
$sh->bind_param('s', $name);
$sh->execute();
}
// Free resource when we're done
$sh->close();