0

SQL UPDATE を実行しようとしています。

更新しようとすると、Updated! というメッセージが表示されます。($action_succeed) しかし、データベースで更新されません...

何が問題なのですか?

私のコードは...

<form action="title.php" method="post" autocomplete="off">
    Article ID<input type="text" name="edit_article_id" />
    New Title<input type="text" name="edit_article_title" />
    <input type="submit" value="OK" /><br /><br />
</form>

if (isset($_POST['edit_article_id'], $_POST['edit_article_title'])) {
            $id = $_POST['edit_article_id'];
            $title = ($_POST['edit_article_title']);



            if (empty($id) or empty($title)) {
                $error_failed = 'Failed, please fill in all of the fields';
            } else {
                $query = $db->prepare('UPDATE articles (article_title) VALUES (?) WHERE (article_id) VALUES (?)');

                $query->bindValue(1, $title);
                $query->bindValue(2, $id);


                $action_succeed = 'Updated!';
                $query->execute();


            }
        }
4

1 に答える 1

1

$action_succeed成功または失敗に関係なく、クエリが試行される前に設定しているためです。

この失敗は、主に SQL 構文が原因です。

if (isset($_POST['edit_article_id'], $_POST['edit_article_title'])) {
  $id = $_POST['edit_article_id'];
  $title = ($_POST['edit_article_title']);

  if (empty($id) or empty($title)) {
    $error_failed = 'Failed, please fill in all of the fields';
  } else {
    $query = $db->prepare('UPDATE articles set article_title = ? WHERE article_id = ?');

    $query->bindValue(1, $title);
    $query->bindValue(2, $id);

    if ($query->execute())
      $action_succeed = 'Updated!';
    else
      $error_failed = 'Update failed.';
  }
}
于 2013-08-17T01:52:21.143 に答える