基于$curr_time->format('Y-m-d H:i')的SQL语句

5

为什么这段代码...

$curr_time = new DateTime();
$query_inprocess = "UPDATE `MyTable` 
                    SET inprocess=1 
                    WHERE startTime <= '" .$curr_time->format('Y-m-d H:i') . "'";

如果在SQL查询中使用<,结果可能会导致错误的SQL查询,其中在<之后的语句被忽略?

UPDATE `MyTable` SET inprocess=1 WHERE startTime <

5
使用参数化查询,避免手动格式化数据类型。 - MatBailie
2
“UPDATE `MyTable` SET inprocess=1 WHERE startTime <”-- 这是在你使用 echo $query_inprocess; 时的输出吗?还是它是 MySQL 错误信息的一部分?看起来问题出现在代码的其他地方,这里没有显示出来。” - Travesty3
你定义了 $curr_time。难道你不需要为它设置一个值吗? - ypercubeᵀᴹ
@ypercube:它应该默认为当前时间。 - gen_Eric
4
没问题:http://codepad.viper-7.com/Wu4EUg - gen_Eric
显示剩余2条评论
2个回答

1
请查看下面的内容:
"UPDATE `MyTable` SET inprocess=1 WHERE startTime <= now()"

这可能会帮助您获得所需的确切结果。


0

试试这个

$curr_time = new DateTime();
$query_inprocess = "UPDATE `MyTable` 
                    SET inprocess=1 
                    WHERE startTime <='" .$curr_time->format('Y-m-d H:i'). "'";//OR use date('Y-m-d H:i') instead of $curr_time->format('Y-m-d H:i')

3
为什么空间会有影响呢? - Travesty3
2
@YouKuper:你有检查过php.ini文件中的error_reporting设置吗?也许脚本正在生成错误,但你没有看到它。 - Travesty3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接