商品登録する時にDB新規登録なのか、更新なのか分けてDBに登録したい。
sql文が間違っていて、進めることができてません。
自分のDBにSQL文を直打ちしましたが更新されないので間違っていると思われますが、初心者すぎて分かりません。。SQL文基本の書き方の記事を参考にしましたが解決に至りませんでした。ヒントお願いいたします。
<<<<<<<該当コード<<<<<<<<<<<
//例外処理
try {
//DBへ接続### ヘディングのテキスト
$dbh = dbConnect();
//SQL文作成
//編集画面の場合はUPDATE文、新規登録画面の場合はINSERT文を生成
if($edit_flg){
debug('DB更新です。');
### $sql = 'UPDATE product SET name = :name, category_id = :category, price = :price, comment = :comment, pic1 = :pic1, pic2 = :pic2, pic3 = :pic3 WHERE user_id = :u_id AND id = :p_id';
$data = array(':name' => $name, ':category' => $category_id, ':price' => $price, ':comment' => $comment, ':pic1' => $pic1, ':pic2' => $pic2, ':pic3' => $pic3, ':u_id' => $_SESSION[$user_id], ':p_id' => $p_id);
}else{
debug('DB新規登録です。');
### $sql = 'INSERT INTO product (name, category_id, price, comment, pic1, pic2, pic3, user_id, create_date) VALUES (:name, :category, :price, :comment, :pic1, :pic2, :pic3, :u_id, :date)';
$data = array(':name' => $name , ':category' => $category, ':price'=> $price, ':comment' => $comment, ':pic1'=> $pic1, ':pic2' => $pic2, ':pic3' => $pic3, ':u_id' => $_SESSION['user_id'], ':date' => date('Y-m-d H:i:s'));
}
debug('SQL:'.$sql);
debug('流し込みデータ:'.print_r($data,true));
//クエリ実行
$stmt = queryPost($dbh, $sql, $data);
<<<<<<<<<<<<<<エラー文<<<<<<<<<<<<<<<<<<<<<<<
エラー発生:SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
バインドされた変数の数がトークンの数と一致しませんと怒られています。。
あなたの回答
tips
プレビュー