Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 声明并为存储在表中的变量赋值_Php_Mysql_Variables - Fatal编程技术网

Php 声明并为存储在表中的变量赋值

Php 声明并为存储在表中的变量赋值,php,mysql,variables,Php,Mysql,Variables,我有一个只包含变量的表vars。共有三列: id-id name-变量名 val-变量值 我需要声明变量并给它们相应的值,比如: $stmt = $db->query("SELECT * FROM vars order by id asc"); while($row = $stmt->fetch()){ '$' . $row['name'] = "'" . $row['val'] . "'"; } echo $somevariable... 有什么帮助吗 $stmt =

我有一个只包含变量的表
vars
。共有三列:
id
-id
name
-变量名
val
-变量值

我需要声明变量并给它们相应的值,比如:

$stmt = $db->query("SELECT * FROM vars order by id asc");
while($row = $stmt->fetch()){
    '$' . $row['name'] = "'" . $row['val'] . "'";
}

echo $somevariable...
有什么帮助吗

$stmt = $db->query("SELECT * FROM vars order by id asc");
while($row = $stmt->fetch()){
    ${$row['name']} = $row['val'];
}
试试这个
但是,您需要确保$row['name']符合PHP变量命名要求

我想您应该这样做

$$row['name'] = $row['val'];
试试这个

${$row['name']} = $row['val'];

它起作用了。任何关于符合PHP的
的链接…
,PHP变量的规则:变量以$符号开头,后跟变量名称变量名称必须以字母或下划线字符开头变量名称不能以数字开头变量名称只能包含字母数字字符和下划线(A-z,0-9和)@bonaca:你是在把我的代码放在你的循环中吗?根据PHP文档,我的解决方案应该是正确的。()是的,我当然试过了。所有变量在回显时都是未定义的。