###やりたいこと
DBに保存されているデータをPDOを使って更新したい。
###エラー内容
接続は成功するが、更新ができない。
2種類チャレンジしてますが、どちらもダメです。
よろしくお願いします。
###コード
php
1 2 3$dsn = 'mysql:host= ;dbname= ;charset=utf8'; 4 $user = ''; 5 $password = ''; 6 7//エラーメッセージの初期化 8$errors = array(); 9 10$group_id="C5b4ae4d90a210e787f0"; 11$Name="4545"; 12 13 14 15 16 17//ここでデータベースに登録する 18try{ 19 20 $dbh = new PDO($dsn, $user, $password); 21 $statement = $dbh->prepare("update LineBot set Name =:Name where UesrId = :value"); 22 23 if($statement){ 24 25 //プレースホルダへ実際の値を設定する 26 $statement->bindParam(':Name', $Name, PDO::PARAM_STR); 27 $statement->bindValue(':value', $group_id, PDO::PARAM_STR); 28 $erros = "接続成功。"; 29echo $erros; 30 if(!$statement->execute()){ 31 $erros = "登録失敗しました。"; 32echo $erros; 33 } 34 35 //データベース接続切断 36 $dbh = null; 37 } 38 39 }catch (PDOException $e){ 40 print('Error:'.$e->getMessage()); 41 $erros = "データベース接続失敗しました。"; 42echo $erros; 43 } 44 45 46try{ 47 $dbh = new PDO($dsn, $user, $password); 48 49 print('<br>'); 50 51 if ($dbh == null){ 52 print('接続に失敗しました。<br>'); 53 }else{ 54 print('接続に成功しました。<br>'); 55 } 56 57 58 $sql = 'update LineBot set Name =? where UesrId = ?'; 59 $stmt = $dbh->prepare($sql); 60 $flag = $stmt->execute(array($Name, $group_id)); 61 62 if ($flag){ 63 print('データの更新に成功しました<br>'); 64 }else{ 65 print('データの更新に失敗しました<br>'); 66 } 67 68 print('更新後のデータ一覧:<br>'); 69 70 $sql = 'select id, name from shouhin'; 71 $stmt = $dbh->prepare($sql); 72 $stmt->execute(); 73print_r($dbh->errorInfo()); 74 75 76}catch (PDOException $e){ 77 die(); 78} 79 80?>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/21 13:27