質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

解決済

データベース更新 PHP UPDATE

退会済みユーザー

退会済みユーザー

総合スコア0

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

2回答

0リアクション

0クリップ

241閲覧

投稿2022/09/25 07:22

編集2022/09/25 08:19

前提

DBについて勉強中です。
PHPでデータ更新をしていますが、うまく反映されません。
エラーは出ていませんが、反映されない状態です。

実現したいこと

UPDATEを使ってデータ更新をしたい。

該当のソースコード

PHP

<?php //PDOインスタンス生成 $res=""; $USER='root'; $PW='root'; $dnsinfo="mysql:dbname=cafe;host:localhost;charset=utf8"; $pdo = new PDO($dnsinfo, $USER, $PW); //更新処理 if (isset($_POST['update'])) { try { $sql="UPDATE contacts SET name=?,kana=?,tel=?,email=?,body=?,created_at=? WHERE id=?"; $stmt=$pdo->prepare($sql); $array= array($_POST['name'],$_POST['kana'],$_POST['tel'],$_POST['email'],$_POST['body'],$_POST['created_at'],$_POST['id']); $stmt->execute($array); } catch (Exception $e) { $res=$e->getMessage(); } } //全レコード参照 try { $sql="SELECT*FROM contacts"; $stmt=$pdo->prepare($sql); $array=null; $stmt->execute($array); $res="<table>\n"; while ($row=$stmt->fetch(PDO::FETCH_ASSOC)) { $res .="<tr><td>".$row['id'] ."</td><td>" .$row['name'] ."</td><td>" .$row['kana'] ."</td><td>" .$row['tel'] ."</td><td>" .$row['email'] ."</td><td>" .$row['body'] ."</td><td>" .$row['created_at'] ."</td>"; $res .="</tr>\n"; } $res .="</table>\n"; } catch (Exception $e) { $res=$e->getMessage(); } ?>   <section> <div class="contact_box"> <h2>お問い合わせ</h2> <form action="update.php" method="post" novalidate> <h3>下記の項目をご記入の上送信ボタンを押してください</h3> <p>送信頂いた件につきましては、当社より折り返しご連絡を差し上げます。</p> <p>なお、ご連絡までに、お時間を頂く場合もございますので予めご了承ください。</p> <p><span class="required">*</span>は必須項目となります。</p> <dl class="information"> <dt> <label for="name">氏名</label> <span class="required">*</span> </dt> <?php if (@$error['name'] === 'blank'): ?> <dd class="error">氏名は必須入力です。10文字以内でご入力ください。</> <?php endif; ?> <dd> <input type="text" name="name" id="name" placeholder="山田太郎" value="<?php echo htmlspecialchars(@$post["name"]); echo $name;?>"> </dd> <dt> <label for="kana">フリガナ</label> <span class="required">*</span> </dt> <?php if (@$error['kana'] === 'blank'): ?> <dd class="error">フリナガは必須入力です。10文字以内でご入力ください。</dd> <?php endif; ?> <dd> <input type="text" name="kana" id="kana" placeholder="ヤマダタロウ" value="<?php echo htmlspecialchars(@$post["kana"]); echo $kana;?>"> </dd> <dt> <label for="tel">電話番号</label> </dt> <?php if (@$error["tel"] === "tel"): ?> <dd class="error">電話番号は0-9の数字のみでご入力ください。</dd> <?php endif; ?> <dd> <input type="text" name="tel" id="tel" placeholder="09012345678" value="<?php echo htmlspecialchars(@$post["tel"]); echo $tel;?>"> </dd> <dt> <label for="email">メールアドレス</label> <span class="required">*</span> </dt> <?php if (@$error['email'] === 'blank'): ?> <dd class="error">メールアドレスは正しくご入力ください。</dd> <?php endif; ?> <?php if (@$error['email'] === 'email'): ?> <dd class="error">メールアドレスは正しくご入力ください。</dd> <?php endif; ?> <dd> <input type="text" name="email" id="email" placeholder="test@test.co.jp" value="<?php echo htmlspecialchars(@$post["email"]); echo $email;?>"> </dd> </dl> <h3>お問い合わせ内容をご記入ください <span class="required">*</span> </h3> <dl class="body"> <?php if (@$error['body'] === 'blank'): ?> <dd class="error">お問い合わせ内容は必須入力です。</dd> <?php endif; ?> <dd> <textarea name="body" id="body"><?php echo htmlspecialchars(@$post["body"]); echo $body;?></textarea> </dd> <dd> <button type="submit" name="update" id="update">更 新</button> </dd> </dl> </form> </div> <?php echo $res; ?> </section>

試したこと

配列に自信がなく、created_atやidを消したり追加したりしましたがよくわかりません。

参考書を見ながら進めていますが、つまづいてしまったので、回答をお願いします。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

AbeTakashi

2022/09/25 07:38 編集

HTML側(入力フォーム)のソースコードの提示もお願いします。エラーメッセージも出ないというのであれば、単純にif分の中に処理が来てないのでは?という感じも受けますが、提示されている情報だけでは第三者には判断ができません。質問文は追記や編集ができます。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます