###前提・実現したいこと
html javascript phpで画像をアップロードする機能を作っています。
画像を登録するたびにphoto_idを重複なしで1からINSERTしたいです。
つまりどういうことかというと
画像をアップロード→DBManager.phpでphoto_idを1にして画像情報を登録する→
画像をアップロード→DBManager.phpでphoto_idを2にして画像情報を登録する→
画像をアップロード→DBManager.phpでphoto_idを3にして画像情報を登録する→...
ということです。
今は乱数でidを登録するということにしていますが
ものすごい低い確率でidが重複になり
データベースに画像情報を登録することができなくなります(photo_idを主キーにしているため)
###該当のソースコード
php
1//画像の登録する機能 2 function photo_insert($ph_name,$n_id,$ph_date,$ph_path){ 3 try{ 4 //DBに接続 5 $this->dbConnect(); 6 7 $stmt = $this->myPdo -> prepare("INSERT INTO photos(photo_id, nursery_school_id, photo_name, photo_date, photo_path) VALUES (:phid, :nid, :phname, :phdate, :phpath)"); 8 $stmt->bindValue(':phid', rand(1,2147483647), PDO::PARAM_INT);//この部分を重複なしで1からINSERTしたい 9 $stmt->bindValue(':nid', $n_id, PDO::PARAM_STR); 10 $stmt->bindValue(':phname', $ph_name, PDO::PARAM_STR); 11 $stmt->bindValue(':phdate', $ph_date, PDO::PARAM_STR); 12 $stmt->bindValue(':phpath', $ph_path, PDO::PARAM_STR); 13 //SQL実行 14 $stmt->execute(); 15 16 17 //DB切断 18 $this->dbDisconnect(); 19 20 //header('Location: registerOK.html'); 21 }catch (PDOException $e) { 22 print('書き込み失敗。'.$e->getMessage()); 23 throw $e; 24 //header('Location: registerNG.html'); 25 } 26 }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/22 06:56
2017/05/22 06:59