【发布时间】:2021-10-08 11:21:07
【问题描述】:
我正在传递 ID,并对 SQL 数据库进行查询。 ID 由new DateTime() 生成,之后我对其进行格式化。整个工作流程正常工作,建立 SQL 数据库连接并添加 ID。
问题在于前导零,例如今天的日期 08.10.2021。这些在 PHP 中显示为 08102021..,但在 sql 中添加为 8102021..。前导零消失了。我已经在 sql 中尝试过不同的列类型,例如nchar、varchar、int 等。每次都遇到同样的问题。
我错过了什么?
$date = new DateTime();
$date = $date->format("dmYHisu");
$addQuery = "INSERT INTO nodes (id) VALUES ($date)";
if (sqlsrv_query($connection, $addQuery)) {
echo "Node added.";
} else {
die (print_r(sqlsrv_errors(), true));
}
我还硬编码了传递的值,每次都是同样的问题。
【问题讨论】:
-
“我错过了什么?” - 查询中的文本文字分隔符,让数据库知道这应该是字符串值,而不是数字...
-
@ICoded,始终使用参数化语句来防止可能的 SQL 注入问题。有关使用 SQL Server 的 PHP 驱动程序传递和检索
datetime值的更多信息,请访问 here。