-6

这是一个奇怪的问题。

我有一个日期,它mm-dd-yyyy 在发布到 mysql 时转换为我已重新订购yyyy-mm-dd 但它仍然不会插入

$date = date("Y-m-d", strtotime($_POST['leaving_date']) );

有什么建议吗?干杯

编辑

实际查询:

mysql_query("INSERT INTO booking_info (customer_id, booking_ref, date_of_travel) VALUES (".mysql_real_escape_string($_POST['customer_id']).", ".mysql_real_escape_string($rnd).", ".mysql_real_escape_string($date).")");
4

6 回答 6

2

您的值不是用单引号引起来的。

mysql_query("INSERT INTO booking_info (customer_id, booking_ref, date_of_travel) 
             VALUES (
               '".mysql_real_escape_string($_POST['customer_id'])."',
               '".mysql_real_escape_string($rnd)."', 
               '".mysql_real_escape_string($date)."')");
于 2012-09-05T15:26:12.683 回答
1

应该提到的是,使用 PDO 不会给你这些问题;让我举例说明:

// assuming $db is a PDO instance to your database
// prepare the statement
$stmt = $db->prepare('INSERT INTO booking_info (customer_id, booking_ref, date_of_travel) VALUES (:customer, :ref, :date)');
// execute the statement with your variables
$stmt->execute(array(
    ':customer' => $_POST['customer_id'],
    ':ref' => $rnd,
    ':date' => $date,
));

正确的引用和转义是在后台完成的;整洁吧?:)

于 2012-09-05T15:36:34.060 回答
1
mysql_query("INSERT INTO booking_info (customer_id, booking_ref, date_of_travel) VALUES (".mysql_real_escape_string($_POST['customer_id']).", ".mysql_real_escape_string($rnd).", '$date')");

试试那个....应该可以解决问题,但不是编写sql的好方法...无需在$date变量上调用mysql_real_escape_string函数作为您的$date变量。

于 2012-09-05T15:29:36.007 回答
0

您需要在日期周围加上单引号(如果这不是整数或其他类型的数字字段,则可能还有 booking_ref。

尝试这个:

mysql_query("INSERT INTO booking_info (customer_id, booking_ref, date_of_travel) VALUES (".mysql_real_escape_string($_POST['customer_id']).", ".mysql_real_escape_string($rnd).", '".mysql_real_escape_string($date)."')");
于 2012-09-05T15:23:45.843 回答
0

查看您编辑的问题,您的日期似乎缺少单引号。此外,它可能会更慢,但您始终可以让 MySQL 为您进行格式化。根据您使用的扩展程序,您可以执行以下操作:

INSERT ... VALUES (STR_TO_DATE('$phpDate', '%m-%d-%Y')), col2, ...)
于 2012-09-05T15:22:19.123 回答
-1

添加日期时,请使用双引号将其括起来,如字符串。

mysql_query("INSERT INTO booking_info (customer_id, booking_ref, date_of_travel) VALUES (".mysql_real_escape_string($_POST['customer_id']).", ".mysql_real_escape_string($rnd).", \"".mysql_real_escape_string($date)."\")");
于 2012-09-05T15:21:51.823 回答