我的日期没有以日期时间格式正确保存到MySQL



我在将日期保存到MySQL时遇到问题。当我添加日期时间字段时,它们会像一样正确保存

2014-04-08 09:24:00

但是,当我用下面的脚本更新数据时,它会使用对日期时间字段授予权限

0000-00-00 00:00:00

然后,如果我用正确的日期第二次更新它,它会正确保存它。然后,如果我更新页面上的其他内容,它会将其保存为

0000-00-00 00:00:00

再次。如有任何帮助,我们将不胜感激。或者我应该把它保存为字符串,而不是日期时间

$signstart$signend是我正在保存的日期字段

 $stmt = $db->prepare("INSERT INTO signings(signstart,signend,custid,contact,samount,prtamount,faxamount,ordern,fname,lname,street1,street2,city,state,zip,hphone,cphone,wphone,fax,email,coname,coworkphone,pid,invoicenumber,loannumber)values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
            $stmt->bindParam(1, $_POST['signstart'], PDO::PARAM_STR, 20);
            $stmt->bindParam(2, $_POST['signend'], PDO::PARAM_STR, 20);
            $stmt->bindParam(3, $_POST['custid'], PDO::PARAM_STR, 250);
            $stmt->bindParam(4, $_POST['contact'], PDO::PARAM_STR, 250);
            $stmt->bindParam(5, $_POST['samount'], PDO::PARAM_INT, 11);
            $stmt->bindParam(6, $_POST['prtamount'], PDO::PARAM_INT, 11);
            $stmt->bindParam(7, $_POST['faxamount'], PDO::PARAM_INT, 11);
            $stmt->bindParam(8, $_POST['ordern'], PDO::PARAM_STR, 250);
            $stmt->bindParam(9, $_POST['fname'], PDO::PARAM_STR, 250);
            $stmt->bindParam(10, $_POST['lname'], PDO::PARAM_STR, 250);
            $stmt->bindParam(11, $_POST['street1'], PDO::PARAM_STR, 250);
            $stmt->bindParam(12, $_POST['street2'], PDO::PARAM_STR, 250);
            $stmt->bindParam(13, $_POST['city'], PDO::PARAM_STR, 250);
            $stmt->bindParam(14, $_POST['state'], PDO::PARAM_STR, 250);
            $stmt->bindParam(15, $_POST['zip'], PDO::PARAM_STR, 250);
            $stmt->bindParam(16, $_POST['hphone'], PDO::PARAM_STR, 250);
            $stmt->bindParam(17, $_POST['cphone'], PDO::PARAM_STR, 250);
            $stmt->bindParam(18, $_POST['wphone'], PDO::PARAM_STR, 250);
            $stmt->bindParam(19, $_POST['fax'], PDO::PARAM_STR, 250);
            $stmt->bindParam(20, $_POST['email'], PDO::PARAM_STR, 250);
            $stmt->bindParam(21, $_POST['coname'], PDO::PARAM_STR, 250);
            $stmt->bindParam(22, $_POST['coworkphone'], PDO::PARAM_STR, 250);
            $stmt->bindParam(23, $_POST['pid'], PDO::PARAM_INT, 11);
            $stmt->bindParam(24, $invoicenumber, PDO::PARAM_INT, 11);
            $stmt->bindParam(25, $_POST['loannumber'], PDO::PARAM_STR, 250);
            $stmt->execute(); 
 $sql = "UPDATE signings SET 
       pid = ?,
       signstart = ?, 
       signend = ?,
       custid = ?,  
       contact = ?,
       faxamount = ?,  
       samount = ?,
       prtamount = ?, 
       faxamount = ?,
       ordern = ?,
       loannumber = ?,
       fname = ?,
       lname = ?,
       street1 = ?,
       street2 = ?,
       city = ?,
       state = ?,
       zip = ?,
       hphone = ?,
       cphone = ?,
       wphone = ?,
       fax = ?,
       email = ?,
       coname = ?,
       cocellphone = ?,
       coworkphone = ?
       WHERE id = ?";
        $stmt = $db->prepare($sql);
        $stmt->bindValue('1', $_POST['pid'], PDO::PARAM_INT);
        $stmt->bindValue('2', $_POST['signstart'], PDO::PARAM_STR);
        $stmt->bindValue('3', $_POST['signend'], PDO::PARAM_STR);
        $stmt->bindValue('4', $_POST['custid'], PDO::PARAM_STR);
        $stmt->bindValue('5', $_POST['contact'], PDO::PARAM_STR);
        $stmt->bindValue('6', $_POST['faxamount'], PDO::PARAM_INT);
        $stmt->bindValue('7', $_POST['samount'], PDO::PARAM_INT);
        $stmt->bindValue('8', $_POST['prtamount'], PDO::PARAM_INT);
        $stmt->bindValue('9', $_POST['faxamount'], PDO::PARAM_INT);
        $stmt->bindValue('10', $_POST['ordern'], PDO::PARAM_STR);
        $stmt->bindValue('11', $_POST['loannumber'], PDO::PARAM_STR);
        $stmt->bindValue('12', $_POST['fname'], PDO::PARAM_STR);
        $stmt->bindValue('13', $_POST['lname'], PDO::PARAM_STR);
        $stmt->bindValue('14', $_POST['street1'], PDO::PARAM_STR);
        $stmt->bindValue('15', $_POST['street2'], PDO::PARAM_STR);
        $stmt->bindValue('16', $_POST['city'], PDO::PARAM_STR);
        $stmt->bindValue('17', $_POST['state'], PDO::PARAM_STR);
        $stmt->bindValue('18', $_POST['zip'], PDO::PARAM_STR);
        $stmt->bindValue('19', $_POST['hphone'], PDO::PARAM_STR);
        $stmt->bindValue('20', $_POST['cphone'], PDO::PARAM_STR);
        $stmt->bindValue('21', $_POST['wphone'], PDO::PARAM_STR);
        $stmt->bindValue('22', $_POST['fax'], PDO::PARAM_STR);
        $stmt->bindValue('23', $_POST['email'], PDO::PARAM_STR);
        $stmt->bindValue('24', $_POST['coname'], PDO::PARAM_STR);
        $stmt->bindValue('25', $_POST['coworkphone'], PDO::PARAM_STR);
        $stmt->bindValue('26', $_POST['cocellphone'], PDO::PARAM_STR);
        $stmt->bindValue('27', $_POST['id'], PDO::PARAM_INT);
        $stmt->execute();

你是说代码中的INSERT语句有效,但UPDATE语句不正确吗?

一个建议是不要更新任何不需要的字段,但如果确实需要更新这些字段,那么POST语句中通过$_POST['signstart']提供的格式是什么?你能把它打印出来并确保它是一个有效的插入格式吗?

相关内容

  • 没有找到相关文章