刚刚换了thinkphp 3.0 ,我在连贯操作的data中无法使用mysql内部函数是为什么?

$administrator->data("last_login_time=NOW()")->where("id=$re[id]")->save();dump出来$adm... $administrator->data("last_login_time=NOW()")->where("id=$re[id]")->save();
dump出来$administrator出现的语句是:
UPDATE `hbu_administrator` SET `last_login_time`='NOW()' WHERE id=1

NOW()函数总是自己加上单引号
展开
 我来答
cngueson
2012-12-28 · TA获得超过2048个赞
知道小有建树答主
回答量:1643
采纳率:33%
帮助的人:891万
展开全部
$now=NOW();
$administrator->data("last_login_time=".$now)->where("id=$re[id]")->save();

这样写行吗?
个人不喜欢这种写法,比较喜欢数组的写法,便于查错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skycraper97
2013-01-25 · TA获得超过125个赞
知道答主
回答量:80
采纳率:0%
帮助的人:51万
展开全部
请问楼主怎么解决的? 我想使用YEAR,结果没效果.我在where条件中这么写的:
array('A.YEAR(add_time)' => '2013');
我getLastSql()后发现thinkphp直接忽略掉了YEAR,输出结果跟没添加YEAR一样.
追问
修改了ThinkPHP/lib/core/Db.class.php  第383行parseValue方法,添加了判断,如果字符串是now(),就不加单引号
追答
谢谢啦!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晁俊贺楼6M
2012-12-28 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:335
采纳率:50%
帮助的人:147万
展开全部
thinkphp认为你的NOW是一个字符串,其实你的NOW是一个方法是吗?
更多追问追答
追问
是的,就是这么个情况。这个问题tp中有没有内置的机制能够解决这个函数当成字符串的问题呢?
追答
data("last_login_time=NOW()")你把这句话写成:data('last_login_time'=.NOW())你的NOW事return 过来的!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式