0

我有以下代码:

conditions.add("mydate = str_to_date('"+date_from_user+"', '%Y-%m-%d')");

以上工作正常,但由于我从用户那里获取输入并将其推到我的查询中,我冒着查询安全的风险。所以我想使用命名模板,所以我将代码更改为:

conditions.add("mydate = str_to_date(':mydate', '%Y-%m-%d')");
namedParams.put("mydate", date_from_user);

但是,上面的代码不起作用并产生以下错误消息:

<SQLWarning ignored: SQL state 'HY000', error code '1411', message [Incorrect datetime value: ':mydate' for function str_to_date]>

所以似乎namedparameter没有获取价值..

4

2 回答 2

0

您是否尝试过删除引号':mydate'并将其更改如下,

conditions.add("mydate = str_to_date(:mydate, '%Y-%m-%d')");
namedParams.put("mydate", date_from_user);
于 2012-12-12T05:06:53.513 回答
0

首先检查您的数据库服务器日期格式。然后以相同的格式输入。以相同的对象创建您的日期对象或以相同的格式传递字符串。

于 2012-12-12T05:38:31.000 回答