データベース接続エラーを解消したいです。
やりたいこと:
データベース名 max_data に、 $user_code の登録があるかどうかを確認。
⑴あった場合は、user_code カラムが $user_code 、 training_name カラムが $all_data_training_name[i] のレコードの、 max_weight カラムを更新。
⑵なかった場合は追加。
⑵は正しく処理されるのですが、⑴で接続エラーが出てしまいます。
PHP
1 2 $all_data = array($point_a, $point_b, $point_c, $point,_d $point_e, $point_f); 3 $all_data_training_name = array('aポイント','bポイント','cポイント','dポイント', 'eポイント', 'fポイント'); 4 $max=count($all_data); 5 6 $dsn='mysql:dbname=muscle;host=localhost;charset=utf8'; 7 $user='root'; 8 $password=''; 9 $dbh=new PDO($dsn, $user, $password); 10 $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 11 12 $sql='SELECT * FROM max_data WHERE user_code= :user_code limit 1'; 13 $stmt=$dbh->prepare($sql); 14 $stmt->execute(array(':user_code' => $user_code)); 15 $rec = $stmt->fetch(PDO::FETCH_ASSOC); 16 17 if($rec > 0){ 18 for($i=0; $i<$max; $i++){ 19 $sql='UPDATE max_data SET max_weight=? WHERE user_code='.$user_code.' AND training_name='.$all_data_training_name[$i].''; 20 $stmt=$dbh->prepare($sql); 21 $data=array(); 22 $data[]=$all_data[$i]; 23 $stmt->execute($data); 24 } 25 } 26 else{ 27 for($i=0; $i<$max; $i++){ 28 $sql='INSERT INTO max_data (user_code, training_name, max_weight) VALUES (?, ?, ?)'; 29 $stmt=$dbh->prepare($sql); 30 $data=array(); 31 $data[]=$user_code; 32 $data[]=$all_data_training_name[$i]; 33 $data[]=$all_data[$i]; 34 $stmt->execute($data); 35 } 36 } 37 38 $dbh= null;
回答1件
あなたの回答
tips
プレビュー