say you have this array of column name and its value:
$arr = array('str' => 9, 'agi' => 10, 'name' => 'foo')
use this query builder to create your insert or update query:
function query_builder($arr, $table_name, $type, $clause="") {
if ($type == "insert") {
$q = "$type into $table_name";
$keys = "";
$values = "";
foreach ($arr as $key => $value) {
$keys .= "`$key`, ";
$values .= "?, ";
}
$keys = substr_replace($keys,"",-2);
$values = substr_replace($values,"",-2);
$q .= "($keys) values($values)";
}
else if ($type == "update") {
$q = "$type $table_name set ";
foreach ($arr as $key => $value) {
$q .= "`$key` = ?, ";
}
$q = substr_replace($q,"",-2);
$q .= " where $clause";
}
return $q;
}
example:
$q = query_builder($arr,"table_1","insert");
or
$q = query_builder($arr,"table_1","update","id = 123");
$values = array_values($arr);
//fyi, my DB uses PDOStatement->execute
$db = new DB();
$db->run($q, $values);
No comments:
Post a Comment