模型类CURD操作中,NULL和NOW如何表示?

#1 zf19870131

如题,比如sql语句是这样的。

 
$sql = "INSERT INTO `speedphp`.`times` (`id`, `time`) VALUES (NULL, NOW());";

如果使用
$time = array(
'id' => NULL;
'time' => NOW();
);
如果用$times->create($time);
这样插入一个数据的话,系统会报错。

请问如何解决呢?

谢谢

2010-04-25 08:18:16

#2 jake

PHP没有NOW()这个函数,NOW()是MySQL的函数,MySQL的NOW()返回 ‘2010-04-25 09:38:49’ 此格式的时间,所以在PHP中可以用date函数来替代:

$time = array(
'id' => NULL,
'time' => date('Y-m-d H:i:s'), // 要类似NOW() + 100 这种运算的话,可以用date('Y-m-d H:i:s', time() + 100)
);
date函数的详细使用方法:http://speedphp.com/doc/php/functions.a/function.date.html

另外提醒一下:
1. 楼主的数组$time内,每项的结尾应该是逗号(,),而不是分号(;),编程的时候要注意。
2. 系统报错的话,最好把系统错误提示也贴出来,这样更容易知道问题何在。:)

2010-04-25 09:44:43

#3 zf19870131

非常感谢jake老大的帮助。
还是想问这个问题。

$sql = "INSERT INTO `speedphp`.`times` (`id`, `time`) VALUES (NULL, NOW());";
SpeedPHP中,如何创建NULL和NOW()呢?
必须写sql语句么?不能使用create方法?

2010-04-25 10:33:24

#4 jake

这就不明白你问的到底是什么了?

1. create方法是建新记录的,上面给你的那个$time,使用create($time)就可以达到你的SQL的效果。
2. NOW这个函数在PHP里面是没有的,不过你自己可以定义function now(){return date('Y-m-d H:i:s');}
3. 如果要执行$sql这个SQL语句,可以用query函数。

2010-04-25 11:00:50

#5 zhangbangyue

$a = "a = 50 AND t = now() ";

2010-12-01 12:09:08