> Dear List,
> How can I include a dynamically generated array:
> e.g. for($i=0; $i<sizeof($cols); $i++)
> { $cols[$i]= mysql_field_name($fields,$i); }
>
> into a MySQL insert query of the type:
-snip-
/** {{{2
* create an INSERT or UPDATE query based on values of an associative array,
* where keys are the column names to be modified.
*
* @param array values an associative array
* @param string table the table name
* @param string type the query type, currently only 'INSERT' or
* 'UPDATE'
* @return mixed a SQL query string on success, false otherwise (e.g., no
* keys found matching valid column names)
*/
function array_to_query($values, $table, $type) // {{{3
{
if(!is_array($values)) return false;
foreach($values as $col => $val) {
$values[$col] = db::quote($val);
if(is_null($val)) unset($values[$col]);
}
switch($type) {
case 'INSERT':
$query = sprintf('INSERT INTO %s (%s) VALUES (%s)', $table,
join(',', array_keys($values)), join(',', $values));
break;
case 'UPDATE':
foreach($values as $col => $val)
$values[$col] = " ${col} = ${val}";
$query = "UPDATE $table SET " . join(',', $values);
break;
default:
trigger_error("Unrecognized query type '$type' supplied to
db_array_to_query()", E_USER_WARNING);
return false;
}
return $query;
}
---------------------------------------------------------------------
michal migurski- contact info and pgp key:
sf/ca http://mike.teczno.com/contact.html
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php