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'"));

执行上述操作有点让 Ram 陷入困境。任何帮助表示赞赏。

检查了其他问题,没有一个符合要求。

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 回答