PHP / MySQL: динамический подготовленный оператор с запросом на вставку / обновление

Я нашел это http://net.tutsplus.com/tutorials/php/the-problem-with-phps-prepared-statements/

и он работает очень хорошо, чтобы иметь его в отдельном php-файле, к которому обращаются другие мои файлы с запросом в качестве аргумента.

Можно ли сделать что-то подобное с другими запросами, такими как вставка и обновление?

Это обновленный пример:

$ params – это массив.

  function insertToDB($params, $db) { //Pass array and db $fields = array(); $conn = new mysqli('localhost', 'root', 'root', 'db') or die('XXX'); $stmt = $conn->stmt_init(); $stmt->prepare("SELECT * FROM ".$db); $stmt->execute(); $meta = $stmt->result_metadata(); while ($field = $meta->fetch_field()) { $fields[] = $field->name; } $fields = implode(", ", $fields); $placeholders = implode(',', array_fill(0, count($params), '?')); $types = ''; foreach($params as $value) { $types.= substr(strtolower(gettype($value)), 0, 1); } $ins = "INSERT INTO MYDB (".$fields.") VALUES (".$placeholders.")"; $bind_names[] = $types; for ($i = 0; $i < count($params); $i++) { $bind_name = 'bind' . $i; $$bind_name = $params[$i]; $bind_names[] = &$$bind_name; } if ($stmt->prepare($ins)) { call_user_func_array(array($stmt,'bind_param'),$bind_names); $insresult = $stmt->execute(); } return $insresult; $stmt->close(); }