0

私はこれらのphp-mysqlクエリを最小限に抑える方法を見つけようとしてきました。すべてのデータをフェッチする単一のクエリとして記述したいと思います。


$db_u = mysql_fetch_array(mysql_query("SELECT * FROM u_settings WHERE setting='username'"));
$db_p = mysql_fetch_array(mysql_query("SELECT * FROM u_settings WHERE setting='password'"));
$db_e = mysql_fetch_array(mysql_query("SELECT * FROM u_settings WHERE setting='email'"));
$db_t = mysql_fetch_array(mysql_query("SELECT * FROM u_settings WHERE setting='tag'"));
$db_a = mysql_fetch_array(mysql_query("SELECT * FROM u_settings WHERE setting='active'"));
$db_v = mysql_fetch_array(mysql_query("SELECT * FROM u_settings WHERE setting='version'"));
$db_ti = mysql_fetch_array(mysql_query("SELECT * FROM u_settings WHERE setting='time'"));
$db_wa = mysql_fetch_array(mysql_query("SELECT * FROM u_settings WHERE setting='warn'"));
$data_dis = mysql_fetch_array(mysql_query("SELECT * FROM u_settings WHERE setting='dis'"));

上記を行うことは、ラムをぶち壊すようなものです。助けていただければ幸いです。

他の質問をチェックしましたが、どれも法案に適合しません。

4

3 に答える 3

3

多くのクエリの代わりにINを試してください

 SELECT * FROM u_settings WHERE setting IN ('username', 'password','email','tag','active','version','time','warn','dis');
于 2012-06-01T17:06:36.193 に答える
2

はい、WHERE句のない単一のSELECTクエリを記述します。これにより、テーブルからすべての情報が取得されます。

于 2012-06-01T17:08:43.023 に答える
0

各変数を保持したい場合は、配列を作成してこのようにすることができます。

$keys = array(
'db_u' => 'username',
'db_p' => 'password',
'db_t' => 'tag'
);

foreach($keys as $key => $value) {
    &$keys[$key] = mysql_fetch_array(mysql_query("SELECT * FROM u_settings WHERE setting='{$value}'"));
}

私はコードをチェックしていませんが、あなたは要点を理解していると思います。各結果を配列に格納します。

これを行うにはおそらくもっと簡単な方法があります。

于 2012-06-01T17:15:54.553 に答える