データベースへの登録(ON DUPLICATE KEY UPDATE部分のエラー)で、接続エラーになってしまい困っています。
データベースには、
⑴user_code
⑵training_name
⑶max_weight
カラムが登録されており、⑴⑵が既に登録があった場合は⑶をアップデートし、登録がなかった場合は、⑴~⑶を登録します。
php
1 2 $dsn='mysql:dbname=muscle;host=localhost;charset=utf8'; 3 $user='root'; 4 $password=''; 5 $dbh=new PDO($dsn, $user, $password); 6 $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 7 8 for($i=0; $i<$max; $i++){ 9 $sql='INSERT INTO max_data (user_code, training_name, max_weight) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE max_weight = VALUES ('.$all_data[$i].')'; 10 $stmt=$dbh->prepare($sql); 11 $data=array(); 12 $data[]=$code; 13 $data[]=$all_data_training_name[$i]; 14 $data[]=$all_data[$i]; 15 16 $stmt->execute($data); 17 } 18 19 $dbh= null; 20
尚、この前段で、各変数$codeと、 リスト$all_data_training_name, $all_dataの登録があるのですが、そこは正しく入力されていることは確認済みです。
また、
ON DUPLICATE KEY UPDATE max_weight = VALUES ('.$all_data[$i].')
がない状態での単純なデータベース登録はうまくいくことが検証済みです。
回答1件
あなたの回答
tips
プレビュー