当前位置:Gxlcms > PHP教程 > thinkphp问题

thinkphp问题

时间:2021-07-01 10:21:17 帮助过:36人阅读

我下载的是最新的tp3.2.3,我在执行语句的时候遇到问题

就是where或者add,update的时候,

参数错误都不会报错,而是直接过滤掉,我想问下,是我配置的问题吗

问题:<1>比方说user表 字段 username password,我在add的时候,把username写成了usernames,结果语句成功了,不过只插入了password

<2>查询user表,我where条件里面,故意把array('username'=>'aaa')写成array('usernames'=>'aaa')
结果sql直接过滤成了空条件,也就是变成了select * from user ;

debug有开,表明错误会报错,可是字段错误不报错!打印最后一条sql语句的时候,显示的那些错误的字段或者条件,全部被过滤掉了。

回复内容:

我下载的是最新的tp3.2.3,我在执行语句的时候遇到问题

就是where或者add,update的时候,

参数错误都不会报错,而是直接过滤掉,我想问下,是我配置的问题吗

问题:<1>比方说user表 字段 username password,我在add的时候,把username写成了usernames,结果语句成功了,不过只插入了password

<2>查询user表,我where条件里面,故意把array('username'=>'aaa')写成array('usernames'=>'aaa')
结果sql直接过滤成了空条件,也就是变成了select * from user ;

debug有开,表明错误会报错,可是字段错误不报错!打印最后一条sql语句的时候,显示的那些错误的字段或者条件,全部被过滤掉了。

在模型文件中 打印sql:echo $this->getLastSql(),看看执行语句。

debug模式有没有开?

这是thinkphp的过滤效果,add()会把不符合要求的字段过滤掉。你这么问说明你没有看仔细文档。

thinkphp本来就是可以过滤掉你错误的字段。他只把正确的字段写进去。不报错误的。他会当成你没有传这个字段处理

人气教程排行