PHP:如何从MySQL查询中为变量赋值?

时间:2016-09-19 22:26:37

标签: php

我有一个MySQL数据库,' fruits',有10行,如下所示:

id | variable | value  
1  | apples  | 5  
2  | oranges  | 6  

如何有效地使用查询来分配PHP变量值,因此我可以在其他地方使用它们:
$ apples = 5;
$ oranges = 6;

或者换句话说,根据'变量'为PHP变量赋值。数据库中的列。

我能让它发挥作用的唯一方法是:

$con = mysqli_connect($servername, $username, $password, $dbname);

$sql="SELECT variable, value FROM fruits where variable = 'oranges'";
$result=mysqli_query($con,$sql);
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
$oranges = $row["value"]; 

我可以这样做10次,但看起来很糟糕,必须有更好的方法,可能涉及某种循环。在这个(明显)如此完整的代码上不是专业人士,所以我可以看到它的一切如何工作将非常感激。

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

这是一个变量变量的例子:

$sql="SELECT * FROM fruits";
$result = mysqli_query($conn,$sql);

if ($result->num_rows > 0) {

    while ($row = $result->fetch_assoc()) {
        $variable = $row["variable"];
        $$variable = $row["value"];

        echo("Name: " . ${variable} . " Value: " . $$variable . "<br>");
    }
}

祝你好运

答案 1 :(得分:1)

也可以使用它。

$con = mysqli_connect($servername, $username, $password, $dbname);

$sql="SELECT variable, value FROM fruits";
$result=mysqli_query($con,$sql);
while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)){
    ${row["variable"]}= $row["value"];
}

答案 2 :(得分:-1)

我无法看到这样做的一个原因。 数组本身就是一个变量。通过以下方式访问任何单个元素非常容易:$ rows [2] [&#39; variable&#39;]或$ rows [1] [&#39; value&#39;]。

但是如果你真的需要一些混乱,你可以将extract()和foreach循环结合起来。