ホームページ  >  記事  >  バックエンド開発  >  Thinkphp の where 条件では配列を使用できません。理由を分析してください。

Thinkphp の where 条件では配列を使用できません。理由を分析してください。

WBOY
WBOYオリジナル
2016-06-23 13:48:001508ブラウズ

このように書くと、データをクエリできます: $admin_data=$admin->where('username="'.$username.'"')->find();
このように書くと、 Web ページは直接「この Web ページを表示できません」: $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'"; $ar);


最初に渡されるのは配列ではなく文字列です

$arr['username'] = $username

$admin_data=$admin->where($arr)->; find();

試してみてください


まだ動作しません。


最初に渡されるのは配列ではなく、単なる文字列です

たぶん私が明確に表現しなかったのは、where では文字列形式でクエリを実行するのは通常ですが、配列形式ではということです。 、「この Web ページは表示できません」


find() メソッドでどのようなパラメータが受け取られるか見てみましょう。 ?

ユーザー名フィールドのタイプを確認してください

thinkPHP の実行記録をチェックして何が問題だったかを確認するか、新しい PHP ファイルを作成して手動で再度入力してください。いくつかのエラーは非常に厄介です。

$admin_data=$admin->query("select * from hao_admin")

$admin_data=$admin->where(array('username'=>$username)) - >find();

通常、最初のクエリにはデータが含まれます。
2 番目のクエリは直接「このページを表示できません」です。

Apache エラー ログの表示:
PHP 警告: ディレクティブ 'register_globals' は、PHP 6 以降では、Unknown on line 0 でサポートされなくなりました
PHP 警告: ディレクティブ 'register_long_arrays' は、PHP 6 以降では、Unknown on line でサポートされなくなりました0
PHP 警告: ディレクティブ 'magic_quotes_gpc' は、PHP 6 以降では、行 0 の不明でサポ​​ートされなくなりました
以前にログを読んだことがありますが、これらのエラーにはあまり注意を払いませんでした。

phpinfo() により、PHP のバージョンが PHP6.0.0 であることがわかります。 PHP5.2.6を再インストールしたら問題なくなりました。

そんな事あるの?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。