获取整个表并将其放入变量中

时间:2014-10-08 12:22:28

标签: php database

我需要将表Status中的所有值放入变量中。 我想这不是最好的方式,我在下面做了它。我尝试过使用PDO :: FETCH_ASSOC这是我无法工作的。 我该怎么做才能正确?感谢。

我的表名为Status:

------------------
|  Rule  | Value |
|----------------|
| Active |   1   |
|Version |  102  |
| Limit  | 15000 |
------------------

我的代码:

function checkStatus($connection, $rule) {
$query = $connection->prepare('SELECT Value FROM Status WHERE Rule=?');
$query->execute(array($rule));
$result = $query->fetchColumn();
return (int)$result;
}

try {
$connection = new PDO("mysql:host=localhost;dbname='something';charset=utf8", 'username', 'password');
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch(PDOException $ex) { //do-stuff }

$active = checkStatus($connection, "Active")
$version = checkStatus($connection, "Version")
$limit = checkStatus($connection, "Limit")

这是我希望它工作的方式,但是我怎么能只用一个查询到db然后把结果放在变量中,因为我现在有大约10个?

1 个答案:

答案 0 :(得分:1)

$query = $connection->prepare('SELECT Value, Rule FROM Status');
$query->execute(array($rule));
$result = $query->fetchAll();
foreach ($result as $val)
{
    ${strtolower($val['Rule'])} = $val['Value'];
}

echo "$active, $version, $limit"; //1, 102, 15000

这将做同样的事情(将它们放在同一个变量中)。这称为super variables(创建一个名称基于字符串的变量)。