ホームページ  >  記事  >  バックエンド開発  >  thinkphpのselectとfindの違い

thinkphpのselectとfindの違い

高洛峰
高洛峰オリジナル
2016-11-29 10:22:47936ブラウズ

Thinkphp は、MVC アーキテクチャ管理システムを迅速に開発できる比較的優れた PHP 開発フレームワークです。select() メソッドと find() メソッドを使用する必要がありますが、どちらのメソッドもデータセット配列を返すことができます。まずコードの比較を見てください:

$tech=M('techlevel','HR_CS_','DB_CONFIG2');

$Data=$tech->where('id=1')-> find ();

dump($Data);

$Data=$tech->where('id=1')->select();

dump($Data);

結果

配列(6){

["ID"]=>int(1)

["TechLevel"]=>文字列(2)"10"

["備考"]=>文字列(4) "��"

["作成日"]=>string(19)"2013-03-1415:14:38"

["作成者"]=>string(5)"管理者"

[" ROW_NUMBER "]=>string(1)"1"

}

array(1){

[0]=>array(6){

["ID"]=>int( 1 )

["技術レベル"]=>文字列(2)"10"

["備考"]=>文字列(4)"��"

["作成日"]=>文字列(19) ) "2013-03-1415:14:38"

["CreateBy"]=>string(5)"admin"

["ROW_NUMBER"]=>string(1)"1"

}

}

上記のコードからわかるように、find() は 1 次元配列を返し、select() は 2 次元配列を返すため、1 つの値を取得するには値が異なります。次元配列、 $data["TechLevel" ] を使用、二次元配列の値を取得するには $data[0]["TechLevel"] を使用 最初はこの使い方が理解できなかったのでできませんでした。 1 日デバッグしても値を取得できました。ダンプ メソッドを使用した後、最後に 2 つのメソッドの違いが分かりました。

さらに、

$Model=M();

$sql='selectroleidfrom'.C("DB_PREFIX").'adminwhereuserid='.session('userid').'';

$list= $ Model->query($sql);

//書き方1

foreach($listas&$info){

if(info['roleid']=='1'){

}

//メソッド2の書き方

if($list[0]['roleid']=='1'){

}

thinkphpのオリジナルのSQLスペル、結果も2次元配列です


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