使用数组键和值来创建sql select语句

时间:2012-06-24 22:12:07

标签: php mysql arrays pdo sql

我正在尝试传递包含键和值的数组。

键是列,值是要选择的值。

我正在尝试编写一个函数,我可以传递一个数组,并使用键和值作为表的列和值。例如:

$array = array("user"=>"joe", user_id="2");

我需要像这样创建sql语句:

select * from table where $key = $value;

2 个答案:

答案 0 :(得分:4)

您可以像这样构建一个简单的SQL Select:

<?php


/**
 * @param array Column => Value pairs
 * @return string
 */
function create_sql_select(array $pair){
  $condition = array(); 

  foreach ( $pair as $key => $value){
    $condition[] = "{$key} = '{$value}'";
  } 

 // Separate by AND delimiter if there are more than 1 pair 
 $condition = join(' AND ', $condition);

 // Return prepared string:
 return "SELECT * FROM your_table WHERE {$condition}";
}

//Will print: SELECT * FROM your_table WHERE user = 'some' AND age = '10'
print create_sql_select(array('user' => 'some', 'age' => 10));

答案 1 :(得分:0)

使用foreach循环迭代数组并获取键和值。像这样:

$sql='';
foreach($array as $key=>$value){
    $sql = sprintf("select * from table where %s = %s",$key,$value);
    print $sql;
}