Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php PDO更新MySQL中的一行_Php_Mysql_Pdo - Fatal编程技术网

使用php PDO更新MySQL中的一行

使用php PDO更新MySQL中的一行,php,mysql,pdo,Php,Mysql,Pdo,我只想用php更新表中的一行。但这是做不到的!idk为什么! 这是我的密码 if (isset($_POST['publish'])) { try { $post_id = $_POST['post_id']; // $name = $_POST['name']; // $email = $_POST['email']; // $body = $_POST['body']; $status =1;

我只想用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>

在MySql中,时间戳列通常在更新行时更新。如果您不想更新它,您需要以这种方式定义它,以便时间戳获取创建行的日期和时间,而不是更新

CREATE TABLE t1 (
  ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

您可以阅读更多有关时间戳配置的信息

首先在
$cmt->post_id
中有什么内容吗?然后在
$\u POST['POST\u id']
中的segue中?您的问题不清楚。。没有“其他栏目”。。在:status.之后有一个错误的逗号。。更新您的问题并更好地解释
action=“”
易受跨端脚本攻击我建议您删除action属性如果您使用的是html 5,则html仍会验证或使用
action=“”
,如果您使用的是html 4.0/4.1或XHTMLH$stmt2->execute(…)中的数组占位符键必须有
冒号:
才能不失败。在SQL字符串中,必须删除
后面的
:status