-1

次のコードはエラーを示しています: 未定義のインデックス: $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 ループ内の最後の行を次の行に置き換えると:

$db_value = trim(htmlspecialchars_decode($row['my_col']));

大丈夫です。

列名を直接使用する代わりに、php 変数を列名として使用するにはどうすればよいですか?

4

4 に答える 4

1

ラインで

$db_value = trim(htmlspecialchars_decode($row['$col_name']));

'string'は変数補間を許可していないと思います。つまり、PHP は$col_name変数として解釈しません。試す

$db_value = trim(htmlspecialchars_decode($row["$col_name"]));

に注意して''ください""。を使用""すると、文字列内の変数が補間されます

編集:

「文字列補間」は、PHP が文字列を解析し、変数を探し、変数をその文字列表現に置き換える場所です。二重引用符を使用した場合にのみ発生します。

例えば

$var = 1234;
printf("$var\n");
printf('$var\n');

出力します

1234
$var

文字列補間のための最初の行。単一引用符で文字列補間が行われないため、2 行目。

于 2013-05-20T11:34:22.947 に答える
1

'変数を引用符で囲む必要はありません$col_name。単にこれに変更してください

$db_value = trim(htmlspecialchars_decode($row[$col_name]));
于 2013-05-20T11:34:30.103 に答える
0

基本的に、PHP 変数を使用している場合は不要なので、' を削除する必要があります。

行を次のように変更します。

$db_value = trim(htmlspecialchars_decode($row[$col_name]));

これはあなたのために働くでしょう。

于 2013-05-20T12:17:08.063 に答える
0

double quotes、_

$db_value = trim(htmlspecialchars_decode($row["$col_name"]));

または、ここでは引用符を避けることができます。

$db_value = trim(htmlspecialchars_decode($row[$col_name]));

引用符の詳細については、文字列を参照してください。

于 2013-05-20T11:34:18.263 に答える