Php 从表中选择$variable和column?

Php 从表中选择$variable和column?,php,mysql,select,post,foreach,Php,Mysql,Select,Post,Foreach,如何从表中同时选择$ss和extra_列? 这是我的代码,我在选择时出错了 if(isset($_POST['search'])){ if(!empty($_POST['check_list'])) { foreach($_POST['check_list'] as $selected) { $ss="".$selected.", extra_col"; $options=mysql_query("SELECT $ss FROM table"); while($arl=mysql_fetch_

如何从表中同时选择$ss和extra_列? 这是我的代码,我在选择时出错了

if(isset($_POST['search'])){
if(!empty($_POST['check_list'])) {
foreach($_POST['check_list'] as $selected) {
$ss="".$selected.", extra_col";
$options=mysql_query("SELECT $ss FROM table");
 while($arl=mysql_fetch_array($options)) {
  echo $arl['col1']; //echo if selected
  echo $arl['col2']; //echo if selected
  echo $arl['col3']; //echo if selected
  echo $arl['extra_col']; //echo anyway its the extra_col
  }


  }else{
 echo "<b>Please Tick Atleast One Option.</b>";
  }
  }

你的问题完全不清楚。但首先,您应该将查询字符串的创建修复为:

$ss="`".$selected."`, extra_col";
$options=mysql_query("SELECT $ss FROM table");
$ss = '';
foreach($_POST['check_list'] as $selected) {
  $ss .= "`".$selected."`, ";
}
$options=mysql_query("SELECT $ss extra_col FROM table");

这具有很高的sql注入风险,您确实应该使用白名单来确保只有存在的列才能添加到字符串中;您应该验证所有$\u POST值

也就是说,您正在使用不应该使用的引号,如果您需要特殊列名的引号,您应该使用反勾号:

$ss="`".$selected."`,";
$options=mysql_query("SELECT $ss extra_col FROM table");
从代码中我可以看到,您可能希望在循环中构建$ss字符串并在其后运行查询

比如:

$ss="`".$selected."`, extra_col";
$options=mysql_query("SELECT $ss FROM table");
$ss = '';
foreach($_POST['check_list'] as $selected) {
  $ss .= "`".$selected."`, ";
}
$options=mysql_query("SELECT $ss extra_col FROM table");

你的答案是$ss=col1,额外的col,col2,额外的col,col3,额外的col;你能明白为什么吗:?不,我看不出来,你的循环是针对每个值的。所以它不是$ss。=它只是$ss=所以它永远不会有值col1,extra\u col,col2,extra\u col,col3,extra\u coln。。。但是它的foreach确实是循环的,我真的不介意注入部分,它不是一个登录表单,它是一个使用标签的搜索表单,$\u post清单是标签词。我会用完整的代码编辑这个问题,如果可以的话^^@MicaButu这不重要,如果有人从用户那里发布例如id`,*会怎么样;-?这会将你的用户表的所有信息发送给攻击者。em表中根本没有用户,甚至在这个数据库中也没有,所以我不担心没有什么可以攻击的@jeroen我编辑了这个问题,现在图片是否更清晰了?@MicaButu你没有抓住重点,这只是一个例子,我还可以查询mysql系统表。我答案末尾的代码似乎正是你需要的。除了sql注入之外-你能再帮我一件事吗?^^^我在更新的问题中显示了回音,他们给出了错误。。。那是未确定的索引,有什么想法吗?