user_idがuniqueKeyです。
php
1 $sql = "INSERT IGNORE INTO user_image"; 2 $sql .= " (user_id,file,type,name)"; 3 $sql .= " VALUES ('$id','$file','$file_type','$file_name')"; 4 $sql .= " ON DUPLICATE KEY UPDATE"; 5 $sql .= " file = '$file'"; 6 $sql .= " ,type = '$file_type'"; 7 $sql .= " ,name = '$file_name'"; 8 9 $stmt = $pdo->query($sql);
user_id 70が画像更新ページなどで処理実行すると
user_id 70は存在するので更新されます。
しかし、user_idがuniqueKeyなのでid82以降のレコードは追加されることなく更新になってしまうので、
更新対象として、user_idとnameかsizeがuniqueKeyなら、、、ということをしたいんですが、これは極端にsizeもuniqueKeyにするだけで勝手に判断してくれるのでしょうか?
*
追記
user_idとsizeをuniqueにして試してるのですが、下記のようになってしまいます。
SQLの部分は下記です。
php
1 2//取得サイズリスト作成 3 for($px=25;$px<=500;$px+=25) { 4 if($px <= 100) { 5 //25px単位 6 $size_list[] = $px; 7 } else { 8 //50px単位 9 if($px % 2 == 0) { 10 $size_list[] = $px; 11 } 12 } 13 } 14 15foreach ($size_list as $key => $value) { 16 17 18 $sql = "INSERT IGNORE INTO user_image"; 19 $sql .= " (user_id,file,type,name,size)"; 20 $sql .= " VALUES ('$id','$file','$file_type','$file_name','$prefix')"; 21 $sql .= " ON DUPLICATE KEY UPDATE"; 22 $sql .= " file = '$file'"; 23 $sql .= " ,type = '$file_type'"; 24 $sql .= " ,name = '$file_name'"; 25} 26 27//で何回か回してます。 28//肝心なのはSQLの部分、、、
レコードがないときにはインサートされて
レコードがあるときにはUPDATEするには
本質問ではどうすればよいでしょうか?
回答2件
あなたの回答
tips
プレビュー