PHPからデータベースの更新処理の方法.
以下のコードのようにwhere文で一致したレコードについて,カラム$colを値$valで更新したいのですが,失敗してしまいます.
どこが間違っているのか分かりません.PHPからMySQLのデータ更新の仕方をご教授ください.
確認済みなこと:
$user,$dbhは正しいことは確認済み.
また,SQL文についてコマンドで,例えば,テーブルusersのuser_idが3のnameカラムをTANAKAに更新する場合,
以下のようなコマンドを実行し,
update users set name = "TANAKA" where user_id = 3;
select * from users;
で確認を行うと,ちゃんと更新されています.
lang
1//$user : ログインユーザのアカウント 2//$col : 更新するカラム 3//$val : 更新する値 4//$dbh : データベースハンドラ 5 6$dbh = connectDb(); 7 8$sql = "update users set :col = :val where user_id = :user"; 9 $stmt = $dbh->prepare($sql); 10 $isSuccess = $stmt->execute(array(":col"=>$col,":val"=>$val,":user"=>(int)$user["user_id"])); 11 if ($isSuccess){ 12 print('データの更新に成功しました'); 13 }else{ 14 print('データの更新に失敗しました'); 15 }
lang
1function connectDb(){ 2 try { 3 return new PDO(DSN,DB_USER,DB_PASSWORD); 4 } catch (PDOException $e){ 5 echo $e->getMessage(); 6 exit; 7 } 8}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2014/08/27 13:08
2014/08/27 13:20
退会済みユーザー
2014/08/27 14:01
退会済みユーザー
2014/08/27 15:09