php变量作为mysql_fetch_assoc变量中的列名
以下代码显示错误:未定义索引:$col_name inphp变量作为mysql_fetch_assoc变量中的列名,php,mysql,Php,Mysql,以下代码显示错误:未定义索引:$col_name in $table="my_table"; $col_name="my_col"; $sql="SELECT * FROM $table"; $result=mysql_query($sql); while($row=mysql_fetch_assoc($result)){ $db_value = trim(htmlspecialchars_decode($row['$col_name'])); } 但是如果我将while循环中的最后
$table="my_table";
$col_name="my_col";
$sql="SELECT * FROM $table";
$result=mysql_query($sql);
while($row=mysql_fetch_assoc($result)){
$db_value = trim(htmlspecialchars_decode($row['$col_name']));
}
但是如果我将while循环中的最后一行替换为以下一行:
$db_value = trim(htmlspecialchars_decode($row['my_col']));
一切都好
如何使用php变量作为列名而不是直接使用列名?使用
双引号
$db_value = trim(htmlspecialchars_decode($row["$col_name"]));
或者在这里你可以避免引用
$db_value = trim(htmlspecialchars_decode($row[$col_name]));
阅读更多关于引号的信息。在行中
$db_value = trim(htmlspecialchars_decode($row['$col_name']));
我认为'string'
不允许变量插值。换句话说,PHP不会将$colu name
解释为变量。试一试
$db_value = trim(htmlspecialchars_decode($row["$col_name"]));
注意'
现在是'
。使用“
将在字符串中插入变量
编辑:
“字符串插值”是PHP解析字符串、查找变量并用其字符串表示替换变量的地方。仅在使用双引号时发生
例如
将输出
1234
$var
第一行是因为字符串插值。第二行,因为没有字符串插值是用单引号完成的。您不需要用引号括起来
,
您的变量$colu name
,只需更改为此
$db_value = trim(htmlspecialchars_decode($row[$col_name]));
基本上,您需要删除“因为在使用PHP变量时不需要” 将行更改为:
$db_value = trim(htmlspecialchars_decode($row[$col_name]));
这对你有用。你为什么真的需要它
my_table
有一列my_col
-这还不够吗?那$row[$col_name]
呢?变量插值?PHP解析字符串并查找变量,并用其值的字符串表示形式替换字符串中的变量:)编辑过的帖子。
$db_value = trim(htmlspecialchars_decode($row[$col_name]));