Inserir vários valores em várias colunas a partir de uma matriz de dados usando uma instrução preparada para DOP para MySQL

Sou iniciante no PHP e MySQL (e programação em geral) e estou tentando criar uma classe de manipulador de banco de dados genérica chamadaDatabase_Handler que me ajudará a gerenciar coisas básicas, como inserir, excluir, selecionar, atualizar et

Estou trabalhando em uma função de membro para lidar com insert, atualmente. Na minha função de inserção, eu gostaria de construa uma declaração de inserção do DOP preparada e execute-

Suponha que em algum lugar do meu aplicativo chamei a função de inserção da seguinte maneira:

$table = "books";
$cols = array('author', 'title', 'pubdate');
$values = array('Bob Smith', 'Surviving the Zombie Apocalypse', '2010');

$db_handler->insert($table, $cols, $values);

Como posso usar os dados de$table, $cols e$values para criar uma declaração de inserção do DOP preparada? Aqui está o meu primeiro esforço, baseado em uma resposta de "Como inserir uma matriz em uma única instrução preparada para MySQL com PHP e PDO".

public function insert($table, $cols, $values){

        $numvalues = count($values);

        $placeholder = array();
        for($i=0; $i<$numvalues; $i++)
        $placeholder[$i] = '?';

        $sql = 'INSERT INTO '. $table . '(' . implode(",", $cols) . ') ';
        $sql.= 'VAL,UES (' . implode("," $placeholder) . ')"';

        $stmt = $this->dbh->prepare($sql);
        $for($i=0; $i<$numvalues; $i++)
            $stmt->bindParam($i+1, $values[$i])
        $stmt->execute();
}

Acho que isso não vai funcionar, mas talvez você tenha uma idéia do que eu quero fazer. Estou um pouco confuso porque o exemplo fornecido no manual do php.net é

$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

Parece que eles estão enviando$name como um parâmetro para obindParam() funciton, atribuindo um valor a$name mais tarde? Qual é o valor de$name quando é enviado parabindParam()? OubindParam() apenas associe um parâmetro a uma variável, sem pegar os dados dessa variável - permitindoexecute() para lidar com essa parte?

questionAnswers(3)

yourAnswerToTheQuestion