2012-06-24 52 views
1

我想傳遞一個包含鍵和值的數組。使用數組鍵和值來創建sql select語句

鍵是列和值是要選擇的值。

我想寫一個函數,我可以傳遞一個數組,並使用鍵和值作爲表的列和值。例如:

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

我需要的sql語句中像這樣創建:

select * from table where $key = $value; 
+0

是否使用'PDO','mysqli'或'mysql'執行查詢? –

+0

我正在使用PDO執行。 – Yeak

回答

4

您可以構建一個簡單的SQL選擇像這樣:

<?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)); 
+0

哦,不錯的做法,比我目前用於條件映射的功能更好。 –

+0

現在不推薦真正的轉義字符串函數。我應該提到我正在使用PDO – Yeak

+0

非常感謝你。 – Yeak

0

使用foreach循環來遍歷數組了,並得到鍵和值。就像這樣:

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