Hello, I'm trying to understand a general CRUD class that I've seen here:
http://www.phpro.org/classes/PDO-CRUD.html
I'm learning PHP and I have some doubts on this method to generally insert
data into DB. The class name is crud and here is the method:
public function dbInsert($table, $values) {
$this->conn();
$fieldnames = array_keys($values[0]);
$size = sizeof($fieldnames);
$i=1;
//construction of the prepared statment
$sql = "INSERT INTO $table";
$fields = '( ' . implode(' ,', $fieldnames) . ' )';
$bound = '(:' . implode(', :', $fieldnames) . ' )';
$sql .= $fields.' VALUES '.$bound;
//prepares statement e saves it on variable $stmt
$stmt = $this->db->prepare($sql);
foreach($values as vals)
{
$stmt->execute($vals);
}
}
To place values on the DB we do:
$crud = new crud();
$values = array
(
array('animal_name'=>'bruce', 'animal_type'=>'dingo'),
array('animal_name'=>'bruce', 'animal_type'=>'kangaroo'),
);
$crud->dbInsert('animals', $values);
The doubts:
1) Names convention question:
Isn't more correct to call $columname, instead of $fieldname ?
2) Why do we have this?
$i=1
3) Here:
$fieldnames = array_keys($values[0]);
We are keeping on variable $fieldnames, the key value of the $values array,
when this array is on the position 0 ? And what is *actually* the value
returned, considering our array?
$values = array
(
array('animal_name'=>'bruce', 'animal_type'=>'dingo'),
array('animal_name'=>'bruce', 'animal_type'=>'kangaroo'),
);
4) Here:
foreach($values as $vals)
{
$stmt->execute($vals);
}
We are telling that, for each (line/element/index ???) of $values array, the
actual value will be "given"(?) to vals, and the pointer goes to the next
(line/element/index)... ?
We then execute the prepared statement, but I don't get what are we passing
as a param? I mean, what kind of think does the execute PDO method expects
as a param?
Why $stmt->execute($vals); and not only $stmt->execute(); ?
Can I please have your help on clarifying those doubts?
Thanks a lot,
Márcio
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php