【问题标题】:how to use a php array variable as column name in mysql select statement如何在mysql select语句中使用php数组变量作为列名
【发布时间】:2014-08-12 14:32:12
【问题描述】:

我正在尝试在我的 php 代码中使用以下选择查询,其中所有 var1、var2、var3、var4、var5 都是数组变量,但它不起作用

 $sql="SELECT SNo,Date,FROM_TIME,TO_TIME,$var1,$var2,$var3,$var4,$var5 
 FROM $table_name 
 WHERE Date='$start_date'";

【问题讨论】:

  • 定义“不工作”。还有,为什么?准备好的查询(您应该使用它,提示提示!)不允许您这样做是有原因的。
  • 告诉我们(mysql?)错误
  • “数组变量”?看看这个:stackoverflow.com/questions/907806/…
  • 是否有一个数组,所以您应该使用$var[0], $var[1], $var[2], ... 或者是否有更多数组,例如$var1[0], $var2[0], $var3[0], ... ?

标签: php mysql


【解决方案1】:

您可以通过这种方式使用数组值构建您的 mysql 选择查询

<?php 
$columnArray=array('column1'=>'value1',
        'column2'=>'value2', 
        'column3'=>'value3',
        'column4'=>'value4');
        //print_r($columns);
         $columns = implode(',',array_keys($columnArray));
        if(count($columnArray)>0)
         $comma=',';
        else 
          $comma='';

       $sql="SELECT SNo,Date,FROM_TIME,TO_TIME" .$comma." $columns
          FROM tableName
          WHERE Date='2014-06-22'";
        print $sql; //final query
        ?>

【讨论】:

  • 您可以稍微简化一下,不要在数组中指定键('column1','column2',...),因为join 无论如何都会连接值而不是键。 SQL 中 $columns 之后还有逗号,使其无效。还有一件事 - 如果 $columnArray 为空,那么在 TO_TIME 之后也不需要逗号。
  • 感谢您的评论@DarkSide
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-27
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
  • 2017-08-22
  • 2010-09-22
相关资源
最近更新 更多