簡単な編集機能を作っています。
POSTで送信した値をUPDATEを使用してDBに反映させたいです。
ですが、エラーはでないもののDBに反映されない状態です…。
POSTで取得できているのかどうか中身の確認を行ったりエラーメッセージの表示等しましたが、問題らしいものは見当たりませんでした。オートコミット機能も有効化されていることを確認しました。
何か初歩的な部分でミスがあるかもしれないのですが、ご協力をお願いしたいです。
edit
1<?php 2 session_start(); 3 4 $company_ID = isset($_POST['company_ID'])? htmlspecialchars($_POST['company_ID'],ENT_QUOTES,'utf-8'):''; 5 6 if($company_ID == 'company_ID'){ 7 header("Location:./test.php"); 8 exit; 9 } 10 11 //DB接続 12 try{ 13 $dbh = new PDO('mysql:dbname=DSS; host=localhost; charset=utf8','maika','powerB1234'); 14 }catch(PDOException $e){ 15 var_dump($e->getMessage()); 16 exit; 17 } 18 $stmt = $dbh->prepare('SELECT * FROM M_COMPANY WHERE company_ID = :company_ID'); 19 $stmt->bindValue(":company_ID",$company_ID); 20 $stmt->execute(); 21 $edit = $stmt->fetchAll(PDO::FETCH_ASSOC); 22 23?> 24<!DOCTYPE html> 25<html> 26 27 <main> 28 <h3>編集</h3> 29 <button type="button" onclick="location.href='./index.php'">戻る</button> 30 <form action="./update.php" method="POST"> 31 32 <!--disabled=グレー読出し表示/readonly=デフォルト読出し表示--> 33 <input type="company_ID" name="company_ID" value="企業ID:<?php echo $edit[0]['company_ID']; ?>" disabled> 34 35 <p>企業名 *</p> 36 <input type="company_name" name="company_name" placeholder="<?php echo $edit[0]['company_name']; ?>" required> 37 38 <p>企業名フリガナ *</p> 39 <input type="company_TL" name="company_TL" placeholder="<?php echo $edit[0]['company_TL']; ?>" required> 40 41 <p>パスワード *</p> 42 <input type="password" name="password" placeholder="<?php echo $edit[0]['password']; ?>" required> 43 44 <p>郵便番号</p> 45 <input type="postal" name="postal" placeholder="<?php echo $edit[0]['postal']; ?>"> 46 47 <p>住所</p> 48 <input type="address" name="address" placeholder="<?php echo $edit[0]['address']; ?>"> 49 50 <p>電話番号</p> 51 <input type="tel" name="tel" placeholder="<?php echo $edit[0]['tel']; ?>"> 52 53 <p>FAX</p> 54 <input type="fax" name="fax" placeholder="<?php echo $edit[0]['fax']; ?>"> 55 56 <p>メールアドレス</p> 57 <input type="email" name="email" placeholder="<?php echo $edit[0]['email']; ?>"> 58 59 <p>担当部署</p> 60 <input type="department" name="department" placeholder="<?php echo $edit[0]['department']; ?>"> 61 62 <p>代表者名</p> 63 <input type="representative" name="representative" placeholder="<?php echo $edit[0]['representative']; ?>"> 64 65 <p>代表者名フリガナ</p> 66 <input type="representative_TL" name="representative_TL" placeholder="<?php echo $edit[0]['representative_TL']; ?>"> 67 68 <p>担当者名</p> 69 <input type="user" name="user" placeholder="<?php echo $edit[0]['user']; ?>"> 70 71 <p>担当者名フリガナ</p> 72 <input type="user_TL" name="user_TL" placeholder="<?php echo $edit[0]['user_TL']; ?>"> 73 74 <p>ホームページURL</p> 75 <input type="url" name="url" placeholder="<?php echo $edit[0]['url']; ?>"> 76 77 78 <button type="sabmit">更新する</button> 79 80 </form> 81 </main> 82 83 </body> 84</html>
update
1<?php 2 session_start(); 3 4 // 値の受け取り 5 $company_ID = isset($_POST['company_ID'])? htmlspecialchars($_POST['company_ID'],ENT_QUOTES,'utf-8'):''; 6 $company_name = isset($_POST['company_name'])? htmlspecialchars($_POST['company_name'],ENT_QUOTES,'utf-8'):''; 7 $company_TL = isset($_POST['company_TL'])? htmlspecialchars($_POST['company_TL'],ENT_QUOTES,'utf-8'):''; 8 $password = isset($_POST['password'])? htmlspecialchars($_POST['password'],ENT_QUOTES,'utf-8'):''; 9 $postal = isset($_POST['postal'])? htmlspecialchars($_POST['postal'],ENT_QUOTES,'utf-8'):''; 10 $address = isset($_POST['address'])? htmlspecialchars($_POST['address'], ENT_QUOTES, 'utf-8'):''; 11 $tel = isset($_POST['tel'])? htmlspecialchars($_POST['tel'], ENT_QUOTES, 'utf-8'):''; 12 $fax = isset($_POST['fax'])? htmlspecialchars($_POST['fax'], ENT_QUOTES, 'utf-8'):''; 13 $email = isset($_POST['email'])? htmlspecialchars($_POST['email'], ENT_QUOTES, 'utf-8'):''; 14 $department = isset($_POST['department'])? htmlspecialchars($_POST['department'], ENT_QUOTES, 'utf-8'):''; 15 $representative = isset($_POST['representative'])? htmlspecialchars($_POST['representative'], ENT_QUOTES, 'utf-8'):''; 16 $representative_TL = isset($_POST['representative_TL'])? htmlspecialchars($_POST['representative_TL'], ENT_QUOTES, 'utf-8'):''; 17 $user = isset($_POST['user'])? htmlspecialchars($_POST['user'], ENT_QUOTES, 'utf-8'):''; 18 $user_TL = isset($_POST['user_TL'])? htmlspecialchars($_POST['user_TL'], ENT_QUOTES, 'utf-8'):''; 19 $url = isset($_POST['url'])? htmlspecialchars($_POST['url'], ENT_QUOTES, 'utf-8'):''; 20 21 //DB接続 22 try{ 23 $dbh = new PDO('mysql:dbname=DSS; host=localhost; charset=utf8','maika','powerB1234'); 24 25 26 $stmt = $dbh->prepare('UPDATE M_COMPANY SET company_name=:company_name, company_TL=:company_TL, password=:password, postal=:postal, address=:address, tel=:tel, fax=:fax, email=:email, department=:department, representative=:representative, representative_TL=:representative_TL, user=:user, user_TL=:user_TL, url=:url WHERE company_ID=:company_ID'); 27 $stmt->bindParam(":company_ID",$company_ID); 28 $stmt->bindParam(":company_name",$company_name); 29 $stmt->bindParam(":company_TL",$company_TL); 30 $stmt->bindParam(":password",$password); 31 $stmt->bindParam(":postal",$postal); 32 $stmt->bindParam(":address",$address); 33 $stmt->bindParam(":tel",$tel); 34 $stmt->bindParam(":fax",$fax); 35 $stmt->bindParam(":email",$email); 36 $stmt->bindParam(":department",$department); 37 $stmt->bindParam(":representative",$representative); 38 $stmt->bindParam(":representative_TL",$representative_TL); 39 $stmt->bindParam(":user",$user); 40 $stmt->bindParam(":user_TL",$user_TL); 41 $stmt->bindParam(":url",$url); 42 43 $stmt->execute(); 44 45 header('location:./index.php'); 46 47 }catch(PDOException $e){ 48 var_dump($e->getMessage()); 49 exit; 50 } 51 52?>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。