【发布时间】:2016-06-04 18:57:50
【问题描述】:
如何在mysql real scape字符串中插入空日期
if (empty($DATE_PURCHASED)) {
$DATE_PURCHASED = NULL;
}
//sql query
$queryString = sprintf("INSERT INTO IT_ASSET_RADIO (BRAND_NAME, SERIAL_NO, DATE_PURCHASED, LICENSE_NO)
values ('%s','%s', '%s', '%s')",
mysql_real_escape_string($BRAND_NAME),
mysql_real_escape_string($SERIAL_NO),
mysql_real_escape_string($DATE_PURCHASED),
mysql_real_escape_string($LICENSE_NO));
$query = mysql_query($queryString ) or die("Insert failed: " . mysql_error());
如果值,我在 DATE_PURCHASED 中收到此查询无效日期的错误 为空
【问题讨论】:
-
你的数据库字段肯定是一个“日期”字段,所以你不能只在其中插入 NULL
-
@WaqasShahid 当然可以,只要它可以为空。
-
您不能使用转义字符串函数插入 NULL。尤其是你这样做的方式。您通过使用转义字符串和
%s将其封装在'中专门将其声明为字符串。 NULL 不是字符串。 -
我的替代方案是停止使用 mysql_ 并转义字符串函数,除此之外,您必须更合乎逻辑地考虑如何处理非字符串值。
-
检查@RobbyCornelissen 提供的链接。对你有用。