这是一个奇怪的。
我有一个日期,转换为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).")");
答案 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)."\")");