2016-10-06 57 views
-1

我有一個名爲test_config的數據庫表,帶有2個列,名爲&值。 我想遍歷每一行,並創建$variables從名稱和值,例如,然後可以在PHP文件中使用。 第一行在Name Colum中有abc,在Value columb中有123,所以創建的可變性將爲$abc = 123;來自數據庫的php變量

可以這樣做。

謝謝。

+4

是的,但你應該只使用一個數組來代替。 – jeroen

+0

也許你想要這樣的東西 - http://stackoverflow.com/questions/4916510/create-new-variables-from-array-keys-in-php –

回答

0

因此,通過一些進一步的研究,我找到了一個解決方案。


try { 
    $conn = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME."", DB_USERNAME, DB_PASSWORD); 
    // set the PDO error mode to exception 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $conn->prepare("SELECT Name, Value FROM test_config"); 
    $stmt->setFetchMode(PDO::FETCH_KEY_PAIR); 
    $stmt->execute(); 
    $array = $stmt->fetchAll(); 
    //var_dump($array); 
    extract($array); 
    } 
catch(PDOException $e) 
    { 
    echo "Connection failed: " . $e->getMessage(); 
    } 
$conn = null; 

然後,我

echo "The first row variable is $abc</br>"; 
0

我讀到你想爲每個名字創建一個變量。如果我是你,我會把它放在一個陣列中,就像Jeroen所說的那樣。這可以通過執行以下操作來實現:

$host = "localhost"; 
    $user = "username"; 
    $pass = "password"; 
    $dbname = "myDB"; 

    $conn = new mysqli($host, $user, $pass, $dbname); 

    if ($conn->connect_error) { 
     die("ERROR: " . $conn->connect_error); 
    } 

    $query = "SELECT name FROM table"; 
    $name = $conn->query($query); 

    $query2 = "SELECT value FROM table"; 
    $value = $conn->query($query2); 
+0

這並不回答OP的問題。 – jeroen

+0

哎呀抱歉,沒有讀到他想爲每個名稱指定一個變量,但是這種方法更好,將它們放入數組會更高效 –

0

裏面你的循環,你遍歷數據庫行,你可以使用提取物()來設置列,與他們的價值觀變量。

while ($databaseROW = mysql_fetch_assoc($result)) 
{ 
    extract($databaseROW); 

    //rest of code from here down can now use variables 
    //you have columns Name & Value 
    //so now $Name & $Value variables are available 
    //$Name = "value from column Name for this $databaseROW"; 
    //$Value = "value from column Value for this $databaseROW"; 

} 
1

這是這樣的測試,但沒有命名變量

$arr = array(); 
while($row = $query->fetch_array()){ 
    $arr['name'=>$row['name'], 'value'=>$row['value']]; 
}