数据库中的php变量

数据库中的php变量,php,mysql,Php,Mysql,我有一个名为test\u config的数据库表,有两列,名为Name&Value。 我想循环遍历每一行,并从名称和值创建$variables,例如$name=“value”。 第一行的名称column中有abc,值columb中有123,因此创建的vaiable将是$abc=123 这是可以做到的 谢谢。我听说您想为每个名称创建一个变量。如果我是你,我会像杰罗恩说的那样把它放在一个数组中。这可以通过执行以下操作来实现: $host = "localhost"; $user =

我有一个名为
test\u config
的数据库表,有两列,名为Name&Value。 我想循环遍历每一行,并从名称和值创建
$variables
,例如
$name=“value”。
第一行的名称column中有abc,值columb中有123,因此创建的vaiable将是
$abc=123

这是可以做到的


谢谢。

我听说您想为每个名称创建一个变量。如果我是你,我会像杰罗恩说的那样把它放在一个数组中。这可以通过执行以下操作来实现:

    $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);

假设您从数据库中获得如下数组-

$foo = array('first' =>  '1st',
             'second' => '2nd',
             'third' =>  '3rd');
您希望输出为-

$first = '1st';
$second = '2nd';
$third = '3rd';
您可以使用
extract()
函数

<?php extract($foo); ?>


引用-

在循环中迭代数据库行,可以使用extract()将列设置为变量及其值

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

}

因此,通过进一步的研究,我找到了一个解决方案


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>";
echo“第一行变量是$abc
”;
就是这样,但是没有命名变量

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

是的,但是你可能应该用数组来代替。也许你想要这样的东西-这不能回答OP的问题。对不起,我没有读到他想要每个名字都有一个变量,但是这个方法更好,把它们放在数组中会更有效