刚刚换了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()函数总是自己加上单引号 展开
dump出来$administrator出现的语句是:
UPDATE `hbu_administrator` SET `last_login_time`='NOW()' WHERE id=1
NOW()函数总是自己加上单引号 展开
3个回答
展开全部
$now=NOW();
$administrator->data("last_login_time=".$now)->where("id=$re[id]")->save();
这样写行吗?
个人不喜欢这种写法,比较喜欢数组的写法,便于查错。
$administrator->data("last_login_time=".$now)->where("id=$re[id]")->save();
这样写行吗?
个人不喜欢这种写法,比较喜欢数组的写法,便于查错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请问楼主怎么解决的? 我想使用YEAR,结果没效果.我在where条件中这么写的:
array('A.YEAR(add_time)' => '2013');
我getLastSql()后发现thinkphp直接忽略掉了YEAR,输出结果跟没添加YEAR一样.
array('A.YEAR(add_time)' => '2013');
我getLastSql()后发现thinkphp直接忽略掉了YEAR,输出结果跟没添加YEAR一样.
追问
修改了ThinkPHP/lib/core/Db.class.php 第383行parseValue方法,添加了判断,如果字符串是now(),就不加单引号
追答
谢谢啦!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
thinkphp认为你的NOW是一个字符串,其实你的NOW是一个方法是吗?
更多追问追答
追问
是的,就是这么个情况。这个问题tp中有没有内置的机制能够解决这个函数当成字符串的问题呢?
追答
data("last_login_time=NOW()")你把这句话写成:data('last_login_time'=.NOW())你的NOW事return 过来的!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询