我在将日期保存到MySQL时遇到问题。当我添加日期时间字段时,它们会正确保存
2014-04-08 09:24:00
但是,当我使用下面的脚本更新数据时,使用
对datetime字段进行权限处理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();
答案 0 :(得分:0)
您是说代码中的INSERT语句有效,但UPDATE语句不能正常工作吗?
一个建议是不更新您不需要的任何字段,但如果您确实需要更新这些字段,那么POST语句中通过$ _POST ['signstart']传入的格式是什么?你可以打印出来并确保它是一个有效的插入格式吗?