PDO::日期参数?
是否存在一些可用于日期或时间戳的 PDO::PARAM_???
?
示例代码:
$sql = "UPDATE my_table SET current_date = :date WHERE id = 43";
$statement = $pdo->prepare ($sql);
$statement->bindValue (":date", strtotime (date ("Y-m-d H:i:s")), PDO::PARAM_STR);
$statement->execute ();
Does some PDO::PARAM_???
exist which can be used for dates or timestamps?
Sample code:
$sql = "UPDATE my_table SET current_date = :date WHERE id = 43";
$statement = $pdo->prepare ($sql);
$statement->bindValue (":date", strtotime (date ("Y-m-d H:i:s")), PDO::PARAM_STR);
$statement->execute ();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
在 SQL 查询中写入日期时,您将其写入为字符串;您必须对准备好的语句执行相同的操作,并使用
PDO::PARAM_STR
,就像您在建议的代码部分中所做的那样。对于“时间戳”,如果“时间戳”是指:
字符串
传递int
。When writing a date in an SQL query, you are writing it as a string; you have to do the same with prepared statements, and use
PDO::PARAM_STR
, like you did in the portion of code you proposed.And for the "timestamp", if by "timestamp" you mean:
string
int
.只需使用 php 日期函数创建日期即可解决此问题。
Simply creating the date using php date function should fix this issue for you.
没有。将日期视为字符串。
Nope. Treat date as a string.
您必须将日期视为字符串,但您可以创建一个函数来检查是否是有效日期,然后再将其作为参数传递。
像这样:
You have to treat the date as string, but you can create a function to check if is a valid date before pass it as a param.
Like this:
在 RDBMS 中正确存储 DateTime 值(作为字符串)的完整部分:
使用 PHP 7.4.25 进行测试;玛丽亚数据库 10.6.4
A complete section to properly store a DateTime value (as a string) in a RDBMS:
Tested with PHP 7.4.25; MariaDB 10.6.4
这对我有用。
This worked for me.