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

发布于 2024-10-07 02:39:39 字数 1656 浏览 7 评论 0原文

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

这是数据库: alt text

第一个 Web 表单用于客服人员注册订单。它仅包含内部系统中使用的订单号和时间戳 (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)。它使用订单号来标识要更新的数据库条目:

// 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'' 位于 第 1 行 执行时:UPDATE 最好的 SET kursusleder = 'test1', 电话号码 = '2345678',电子邮件 = '[电子邮件受保护]', godkendelse = 'Ja', kommentar = '测试', timegodkend = NOW() ', WHERE ordre = '238581'

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

I have two webforms that is used to keep track of confirmations of orders. They interact with the same MySQL database.

This is the database:
alt text

The first webform is used to register an order by the customer service personnel. It only contain the order number used in the internal systems and a time stamp (timelavet).

This is the code for that (and it works):

    // 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);

The second form is used by the customer to confirm the order plus provide some extra information AND a time stamp for the confirmation (timegodkend). It uses the order number to indentify what DB entry to update:

// 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);

It doesn´t work! The funny thing is I can get it to work without the timegodkend variable but no matter where I put the "', timegodkend = NOW() “, it gives me an error message

The error:

1064: You have an error in your SQL
syntax; check the manual that
corresponds to your MySQL server
version for the right syntax to use
near '', WHERE ordre = '238581'' at
line 1 When executing: UPDATE
bestilling SET kursusleder = 'test1',
telefonnummer = '2345678', email =
'[email protected]', godkendelse = 'Ja',
kommentar = 'test', timegodkend =
NOW() ', WHERE ordre = ‘238581’

Whats wrong with the second code snippet?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

被翻牌 2024-10-14 02:39:39

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

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

Looks like you have an extra unmatched quote ' here:

. "', timegodkend = NOW() " . "' WHERE ordre = '" .
                               ^
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文