php日期不会插入到mysql数据库中

时间:2012-09-05 15:17:36

标签: php mysql

这是一个奇怪的。

我有一个日期,转换为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).")");

6 个答案:

答案 0 :(得分: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)."')");

答案 1 :(得分: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变量。

答案 2 :(得分: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,
));

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

答案 3 :(得分:0)

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

INSERT ... VALUES (STR_TO_DATE('$phpDate', '%m-%d-%Y')), col2, ...)

答案 4 :(得分: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)."')");

答案 5 :(得分:-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)."\")");