2014-10-08 60 views
-2

我需要把所有的值從表狀態到變量。 我猜這不會是最好的做法,我已經做到了。我試過使用PDO :: FETCH_ASSOC,我無法工作。 我應該如何正確地做到這一點?謝謝。獲取整個表格,並把它放在變量

我的表命名狀態:

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

這工作我想它的工作方式,但我怎麼能做到這一點只用一個查詢數據庫,並然後把結果放在變量中,因爲我目前有大約10個變量?

回答

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(創建一個名稱基於字符串的變量)。

+0

謝謝,完美的作品! :) – Jani 2014-10-08 14:34:20

相關問題