更新到mysql条目失败,无法识别问题,可能与时间戳有关

时间:2010-12-13 18:17:33

标签: php mysql mysql-error-1064

我有两个用于跟踪订单确认的网络表单。它们与同一个MySQL数据库进行交互。

这是数据库: alt text

第一个webform用于由客户服务人员注册订单。它只包含内部系统中使用的订单号和时间戳(timelavet)。

这是代码(并且有效):

    // Save data
$mySQLQuery = "INSERT INTO bestilling SET godkendelse = '" . mysql_real_escape_string($_POST['godkendelse']) . "', ordre = '" . mysql_real_escape_string($_POST['ordrenummer']) . "', timelavet = NOW() ";
$rs = @mysql_query($mySQLQuery);

客户使用第二种形式确认订单,并提供一些额外信息和确认时间戳(timegodkend)。它使用订单号来识别要更新的DB条目:

// Save data
    $mySQLQuery = "UPDATE bestilling SET kursusleder = '" . mysql_real_escape_string($_POST['kursusleder']) . "', telefonnummer = '" . mysql_real_escape_string($_POST['telefonnummer']) . "', email = '" . mysql_real_escape_string($_POST['email']) . "', godkendelse = '" . mysql_real_escape_string($_POST['godkendelse']) . "', kommentar = '" . mysql_real_escape_string($_POST['kommentar']) . "', timegodkend = NOW() " . "' WHERE ordre = '" . mysql_real_escape_string($_POST['ordre']). "'";
    $rs = @mysql_query($mySQLQuery);

它不起作用!有趣的是,我可以在没有timegodkend变量的情况下使用它,但无论我把“',timegodkend = NOW()”放在哪里,它都会给我一个错误信息

错误:

  

1064:您的SQL出错了   句法;检查手册   对应于您的MySQL服务器   用于正确语法的版本   靠近'',WHERE ordre ='238581''at   第1行执行时:UPDATE   bestilling SET kursusleder ='test1',   telefonnummer ='2345678',email =   'a@brygge.dk',godkendelse ='Ja',   kommentar ='test',timegodkend =   NOW()',WHERE ordre ='238581'

第二个代码段有什么问题?

1 个答案:

答案 0 :(得分:3)

在这里看起来你有一个额外的不匹配的引用'

. "', timegodkend = NOW() " . "' WHERE ordre = '" .
                               ^