我想在我的php代码中使用以下select查询,其中所有var1,var2,var3,var4,var5都是数组变量,但它不工作如何在mysql select语句中使用php数组变量作为列名称
$sql="SELECT SNo,Date,FROM_TIME,TO_TIME,$var1,$var2,$var3,$var4,$var5
FROM $table_name
WHERE Date='$start_date'";
我想在我的php代码中使用以下select查询,其中所有var1,var2,var3,var4,var5都是数组变量,但它不工作如何在mysql select语句中使用php数组变量作为列名称
$sql="SELECT SNo,Date,FROM_TIME,TO_TIME,$var1,$var2,$var3,$var4,$var5
FROM $table_name
WHERE Date='$start_date'";
您可以通过这种方式
<?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
感谢您的评论@DarkSide –
使用数组值建立你的mysql选择查询定义“不工作”。另外,为什么?有准备查询的原因(你应该使用,提示提示!)不要让你这样做。 –
告诉我们(mysql?)错误 – albertdiones
“数组变量”?看看这个:http://stackoverflow.com/questions/907806/php-mysql-using-an-array-in-where-clause – TribalChief