簡體   English   中英

使用PHP PDO在MySQL中更新一行

[英]Update one row in MySQL using php PDO

我只想使用php更新表中的一行。 但這是不可能的! idk為什么! 這是我的代碼

if (isset($_POST['publish'])) {
       try {
        $post_id = $_POST['post_id'];
        // $name = $_POST['name'];
        // $email = $_POST['email'];
        // $body = $_POST['body'];
        $status =1;
        $sql2 = 'UPDATE cmts SET
                status=:status,

                 WHERE post_id=:id limit 1';
        $stmt2 = $pdo->prepare($sql2);
        $stmt2->execute(['status' => $status, 'id' => $post_id]);
        header('Location: comment.php');
       }
       catch(Exeption $e) {
           echo "error". $e->getMessage();
       }    
      }

和html代碼:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
            <input type="hidden" name="post_id" value="<?php echo $cmt->post_id; ?>">
            <!-- <input type="hidden" name="name" value="<?php //echo $cmt->name; ?>">
            <input type="hidden" name="email" value="<?php //echo $cmt->email; ?>">
            <input type="hidden" name="body" value="<?php //echo $cmt->body; ?>"> -->
            <input type="submit"  value="Publish" name="publish">
        </form>

我只想將一個列(狀態)更新為1。我添加另一個列來更新,它的確更新了該行,但是它影響了我不想的TIMESTAMP列。 這是我桌子的照片: 在此處輸入圖片說明

更新 :感謝您的答案。 狀態后是逗號(,)。 我刪除了它,一切都按預期進行。

在MySql中,TIMESTAMP列通常在您更新行時更新。 如果您不想更新它,則需要以這種方式定義它,以便TIMESTAMP可以獲取創建行的日期和時間,而不是更新的日期和時間。

CREATE TABLE t1 (
  ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

您可以在此處閱讀有關時間戳配置的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM