Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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中使用变量作为列名称的MySQL查询_Php_Mysql_Sql_Mysqli - Fatal编程技术网

PHP中使用变量作为列名称的MySQL查询

PHP中使用变量作为列名称的MySQL查询,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我试图用PHP进行MySQLi查询,但其中一列的名称存储在一个变量($year)中: 此查询返回0作为平均值。我认为问题可能是,$year是一个数字,我不知道一列是否可以有一个整数作为名称 我怎样才能解决这个问题 提前谢谢 您的代码不正确。根据您的代码,MySQL将尝试查找不是有效表达式的平均值(“.$year.”)。这需要改变 因此,假设$year包含非整数的字段名,请尝试以下代码: $result = mysqli_query($con,"SELECT table4.Country, AVG

我试图用PHP进行MySQLi查询,但其中一列的名称存储在一个变量(
$year
)中:

此查询返回0作为平均值。我认为问题可能是,
$year
是一个数字,我不知道一列是否可以有一个整数作为名称

我怎样才能解决这个问题


提前谢谢

您的代码不正确。根据您的代码,MySQL将尝试查找不是有效表达式的平均值(“.$year.”)。这需要改变

因此,假设$year包含非整数的字段名,请尝试以下代码:

$result = mysqli_query($con,"SELECT table4.Country, AVG(`".$year."`)  AS 'Total' FROM table4 WHERE table4.Region IN ($region)");

希望这能有所帮助。

您需要的是不能是整数的列名,而不是
$year
,并为
准备好的语句
爱好者做好准备;提示:使用
PDO
“$year是一个数字,我不知道一列是否可以有一个整数作为名称”-如果您的输入是一个数字,但该列不能是一个数字,那么该代码的具体用途是什么?看起来您试图获取字符串的平均值,而不是列的平均值,这也没有多大意义。这个字符串也总是以一个点开始和结束。你能提供一个表模式以及所需的输出吗?更新了答案。
$result = mysqli_query($con,"SELECT table4.Country, AVG(`".$year."`)  AS 'Total' FROM table4 WHERE table4.Region IN ($region)");