比如一個數組
$a=array("a"=>"1","b"=>"2","c"=>"3");
現在想執行資料庫插入語句insert into admin(a,b,c) values(1,2,3);該怎麼實現?
回複內容:
比如一個數組
$a=array("a"=>"1","b"=>"2","c"=>"3");
現在想執行資料庫插入語句insert into admin(a,b,c) values(1,2,3);該怎麼實現?
$keys;$value;$keys = implode(",", array_keys($a));$value = implode(",",array_values($a));$db->query("insert into admin(".$keys.") values(".$value.")")
你的問題可以簡化為:
$a=array("a"=>"1","b"=>"2","c"=>"3");
轉化為 ('a','b','c') 和 (1,2,3)的過程,你想辦法拼出這個字串即可。方法有很多種,其中一種方法可以是:,
$a=array("a"=>"1","b"=>"2","c"=>"3");$values=implode(',',array_values($a));$keys="'".implode("','",array_keys($a))."'";$sql='insert into admin';$sql.='('.$keys.') ';$sql.='values ';$sql.='('.$values.') ';
寫個方法
function insert($table,$data){ foreach($data as $k => $v){ $fields[] = $v; $keys[] = $k; } $values = "('".implode("','", $fields)."')"; $column = "(`".implode("`,`", $keys)."`)"; $sql = "insert into {$table} {$column} values {$values}"; $this->query($sql);}