更新 mysql 条目失败,无法识别问题,可能与时间戳有关
我有两个网络表单,用于跟踪订单确认。它们与同一个 MySQL 数据库交互。
这是数据库:
第一个 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:
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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来您在这里有一个额外的不匹配的引用
'
:Looks like you have an extra unmatched quote
'
here: