从表中选择$ variable和column?

时间:2015-05-17 18:23:54

标签: php mysql select post foreach

如何选择两个$ ss&表中的extra_column? 这是我的代码,我在SELECT

上收到错误
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>";
  }
  }

2 个答案:

答案 0 :(得分:0)

你的问题绝对不清楚。但是刚开始你应该将你的查询字符串创建修改为:

$ss="`".$selected."`, extra_col";
$options=mysql_query("SELECT $ss FROM table");

答案 1 :(得分:0)

这有很高的sql注入风险,你真的应该使用白名单来确保只有存在的列可以添加到你的字符串中;您应该验证所有$_POST值。

话虽如此,你在不应该使用引号,如果你需要特殊列名的引号,你应该使用反引号:

$ss="`".$selected."`,";
$options=mysql_query("SELECT $ss extra_col FROM table");

从我的代码中可以看到,您可能希望在循环中构建$ss字符串并在其后运行查询。

类似的东西:

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