Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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_Pdo - Fatal编程技术网

Php mySQL将变量作为单元格名称传递不会产生单元格内容

Php mySQL将变量作为单元格名称传递不会产生单元格内容,php,mysql,pdo,Php,Mysql,Pdo,要在给定表的不同单元格中进行查询,我希望使用一个函数,在该函数中我将单元格的名称传递给查询,如下所示: $cell = 'frames'; $query = $this->db->prepare('SELECT :cell FROM time_table WHERE time = :time '); $query->bindValue(':cell', trim($cell), PDO::PARAM_STR); $query->bindValue(':time', tr

要在给定表的不同单元格中进行查询,我希望使用一个函数,在该函数中我将单元格的名称传递给查询,如下所示:

$cell = 'frames';

$query = $this->db->prepare('SELECT :cell FROM time_table WHERE time = :time ');
$query->bindValue(':cell', trim($cell), PDO::PARAM_STR);
$query->bindValue(':time', trim($time), PDO::PARAM_STR);
$success = $query->execute();
$query_result = $query->fetchAll();

 print_r($query_result);
但是我没有得到框架的内容,而是得到了单元的名称,即框架


我需要做什么才能获得内容?

简单的回答:这是不可能的。 占位符只能在准备好的语句中插入值。要解决此问题,请使用:


你不能对表或列名使用绑定变量,所以我必须为我要查询的每一列准备它自己的语句?你可以插值,只要它是白名单的,即你知道该列存在,并且它不是基于用户输入或是经过验证的用户输入。那么SQL注入呢?@Ben,这就是你应该使用它的原因,而不是直接注入值。Quote将处理任何允许sql注入的字符,如果使用得当-请查看“现在正确”中的安全警告;-链接手册!
$cell = 'frames';

$query = $this->db->prepare('SELECT '.$this->db->quote(trim($cell)).' FROM time_table WHERE time = :time ');
$query->bindValue(':time', trim($time), PDO::PARAM_STR);
$success = $query->execute();
$query_result = $query->fetchAll();

print_r($query_result);