thinkphp5 SQLSTATE[42 S22]:Cloumn not found :1054 unknown column ‘s’ in ‘where clause’

thinkphp5 SQLSTATE[42 S22]:Cloumn not found :1054 unknown column ‘s’ in ‘where clause’

我真想吐槽TP5的伪静态规则

切忌使用以下规则:

APACHE:RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

NGINX:rewrite  ^(.*)$  /index.php?s=/$1  last;

伪静态规则建议直接使用PATH_INFO模式,不去翻了。

原因是:如果使用以下的伪静态模式,如果代码中有执行类似以下语句

$insert = array();

foreach($get as $k=>$v){

$insert[$k] = $v;

}

db(“table”)->insert($get);

这时候如果写入(或者是查询更新)的时候,就会提示s字段不存在,因为伪静态规则中会存在一个s参数,值就为当前请求的URL数据。

悲剧的框架,命名也别太随意呀!

在此感谢文祥同事的提醒,不然加班更晚了!

发表评论