2016-10-06 4 views
-1

У меня есть таблица базы данных, называемая test_config с 2-мя колонами, называемая именем & Значение. Я хотел бы пройти через каждую строку и создать $variables от имени и значения, например , которые затем могут быть использованы в файле php. В первой строке есть abc в Column Name и 123 в Value columb, поэтому созданный vaiable будет $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

Я читал, что вы хотели создать переменную для каждого имени. Если бы я был вами, я бы поставил его в массив, как сказал Йерун. Это может быть достигнуто, выполнив следующие действия:

$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

Предположим, у вас есть массив из базы данных, как это -

$foo = array('first' => '1st', 
      'second' => '2nd', 
      'third' => '3rd'); 

вы хотите выход как -

$first = '1st'; 
$second = '2nd'; 
$third = '3rd'; 

Вы можете использовать extract() функцию

<?php extract($foo); ?> 

http://ua.php.net/extract

Ссылка - Create new variables from array keys in PHP

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']]; 
} 
Смежные вопросы