【问题标题】:php variables from database数据库中的php变量
【发布时间】:2017-02-15 07:35:21
【问题描述】:

我有一个名为 test_config 的数据库表,它有 2 个列,称为名称和值。 我想遍历每一行并从名称和值创建$variables,例如$Name = "Value";,然后可以在php文件中使用。 第一行在 Name 列中有 abc,在 Value 列中有 123,所以创建的变量是 $abc = 123;

这个可以吗。

谢谢。

【问题讨论】:

标签: php mysql


【解决方案1】:

就是这样,但没有命名你的变量

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

【讨论】:

    【解决方案2】:

    所以通过一些进一步的研究,我找到了解决方案。

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

    【讨论】:

      【解决方案3】:

      在您迭代数据库行的循环中,您可以使用 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";
      
      }
      

      【讨论】:

        【解决方案4】:

        假设你有这样的数据库数组 -

        $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

        【讨论】:

          【解决方案5】:

          我读到您想为每个名称创建一个变量。如果我是你,我会把它放在一个数组中,就像 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);
          

          【讨论】:

          • 这没有回答 OP 的问题。
          • 糟糕,抱歉,没有读到他想要为每个名称分配一个变量,但这种方法更好,将它们放在一个数组中会更有效
          猜你喜欢
          • 2014-07-03
          • 1970-01-01
          • 1970-01-01
          • 2014-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多