Home  >  Article  >  Backend Development  >  thinkphp的where条件无法用数组,求分析原因

thinkphp的where条件无法用数组,求分析原因

WBOY
WBOYOriginal
2016-06-23 13:48:001536browse

如果我这样写,可以查询出数据::$admin_data=$admin->where('username="'.$username.'"')->find();
如果这样写,网页直接"无法显示此网页":$admin_data=$admin->where(array('username'=>$username))->find();
求分析原因。
1、thinkphp版本是3.13。
2、就是测试的代码,不考虑我别的代码干扰。


回复讨论(解决方案)

PHP版本:5.2
机器上装过IIS,前几天被我卸载了。

$arr['username']=>$username;
$admin_data=$admin->where($arr)->find();
试一试

$arr['username'] = $username;
$admin_data=$admin->where($arr)->find();
试一试

$ar="username='yourname'";
echo is_array($ar);

第一个传进去的并非是array,只是个字符串

$arr['username'] = $username;
$admin_data=$admin->where($arr)->find();
试一试


还是不行。

第一个传进去的并非是array,只是个字符串


可能我没表达清楚,我的意思是where里,用字符串形式查询时正常的,用数组形式就会“无法显示此网页”

看一下find()方法里面接收的参数是什么??

你看下username字段的类型是什么

查看 thinkPHP运行记录  看看是哪里错了,或者 从新建立一个PHP文件 重新手动输入一次。 有些错误很蛋疼的,

$admin_data=$admin->query("select * from hao_admin");
$admin_data=$admin->where(array('username'=>$username))->find();

第一种查询 正常有数据。
第二种查询 直接"该页无法显示"。

查看apache错误日志:
PHP Warning:  Directive 'register_globals' is no longer supported in PHP 6 and greater in Unknown on line 0
PHP Warning:  Directive 'register_long_arrays' is no longer supported in PHP 6 and greater in Unknown on line 0
PHP Warning:  Directive 'magic_quotes_gpc' is no longer supported in PHP 6 and greater in Unknown on line 0
之前有看过日志,但是对这些错误没太注意。

通过phpinfo()看到PHP版本是PHP6.0.0。重装了PHP5.2.6之后,OK了。

还有这种事?

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn