Doubts concerning a general Insert method

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux