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次元配列です