素人です!まる2日ネットで様々検索しましたが、分からりませんでした。
こちらのサイトでは時々お世話になっております。
極力自力解決したいのですが、かれこれ2日程考えこんでおり、
ついに諦めてこちらのサイトに助けを求めました。
MysqlのPDOで複数のデータをデータベースに入れたいのですができずに困っています。
データベースにデータが無い時はINSETでデータがある時はUPDATEにしたいです。
INSERT ... ON DUPLICATE KEY UPDATE 構文を使えばよいと言うのは分かるのですが、
現在はそれ以前の問題でINSERTすらできません。
単純なプリペアードステートメントであれば、問題無くインサートできますが
今回のINSERTはなかなか難しいです。
何かヒントになることがございましたら、是非ご指導お願いしたします。
人数は40名程
1人に入れるデーター数は20件程です。
A氏:データ1、データ2、・・・・データ20
B氏:データ1、データ2、・・・・データ20
C氏:データ1、データ2、・・・・データ20
・
・
・
Z氏:データ1、データ2、・・・・データ20
こんな感じです。
データの入力フォームは、ちょうどエクセルの様な格子状になったフォームから
40人分を入力します。
全データをPOSTして、確認画面でSESSION変数に入れました。
決定画面でそのSESSIONに入った40人分のデータをMysqlにINSERTしたいのですが。
SESSIONに入っているデータはこんな感じです。
$_SESSION['simei_a']、$_SESSION['simei_b']、$_SESSION['simei_c']・・・・
$_SESSION['bangou_a']、$_SESSION['bangou_b']、$_SESSION['bangou_c']・・・
$_SESSION['address_a']、$_SESSION['address_b']、$_SESSION['address_c']・・・
このデータは配列にした方が良いのでしょうか?
・
・
・
・
・
※PDOでのデータベースへの接続は出来ています。
※テストで配列変数を使わないで、VALUES('いちご','りんご','バナナ')とすればインサートできます。
※$pdoはPDOのインスタンスになります。
$pdo=DBconect();
$stmt=$pdo->prepare("INSERT INTO hogehoge
(AAAAA,BBBBB,CCCCC,・・・・・) VALUES (:XXXX :YYYY :ZZZZ ・・・・・)");
foreach ( ?分からない ) {
$stmt->execute( ?分からない );
}
ドライバーオプションは静的プレースホルダを選んでいます。
$DRIVER_OPTIONS=
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,//PDO::ERRMODE_EXCEPTION
PDO::ATTR_EMULATE_PREPARES => false,
];
エラー表示は次の通りです。
Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in
現在上の様なコードを書き、色々と手探りで試してみていますができませんでした。
宜しくご指導お願いいたします。
回答2件
あなたの回答
tips
プレビュー