I would just use a for loop. I believe that would keep the code simple, and
simplicity I think is the main goal for the Zend Framework. I think the
phrase is "simplicity over regularity." I don't think you will even be able
to notice the difference from one huge insert query and many single insert
queries.

Bill Karwin wrote:
> 
> Right; the Adapter's insert() method accepts only one tuple in its
> associative array argument.  If you are doing an extended insert for
> many rows, you should format the full SQL statement as a string, and run
> it with the Adapter's query() method.
>  
>   $sql = "INSERT INTO myTable ( id, field_1, date ) VALUES 
> 
>     ( 301, 40971, '2007-10-04 04:00:19' ), 
> 
>     ...
> 
>     ( 301, 40990, '2007-10-04 04:00:19' )";
> 
>  
> 
>   $db->query($sql);
> 
>  
> 
> Note that you can ignore the Statement object returned by this method in
> this case.  The query() method is just a shortcut for prepare() and
> execute().  It doesn't have to be a SELECT query, it can be any other
> SQL statement type (provided the statement supports being prepared).  In
> this case you have no need to execute this statement more than once, so
> you don't need to save the Statement object returned from query().
> 
>  
> 
> Perhaps there is a need for a new method insertMulti() or something like
> that, which would accept an array of associative arrays, and format the
> SQL appropriately.  Feel free to submit a JIRA issue for this.
> 
>  
> Regards,
> Bill Karwin
> 
> 
> ________________________________
> 
>       From: Camilo Usuga Ortiz [mailto:[EMAIL PROTECTED] 
>       Sent: Thursday, October 04, 2007 7:52 AM
>       To: [email protected]
>       Subject: [fw-general] About massive inserts
>       
>       
> 
>        
> 
>       Hi All,
> 
>        
> 
>       We are currently developing an application where we need to
> insert a big amount of data (thousands of records), we are connecting to
> a PostgreSQL (8.1.6) database through PDO (pdo_pgsql ) the query looks
> pretty much like this:
> 
>        
> 
>       INSERT INTO myTable ( id, field_1, date ) VALUES 
> 
>           ( 301, 40971, '2007-10-04 04:00:19' ), 
> 
>           ( 301, 40972, '2007-10-04 04:00:19' ), 
> 
>           ( 301, 40973, '2007-10-04 04:00:19' ), 
> 
>           ( 301, 40974, '2007-10-04 04:00:19' ), 
> 
>           ....
> 
>           ....
> 
>           ....
> 
>           ....
> 
>           ( 301, 40990, '2007-10-04 04:00:19' );
> 
>        
> 
>       It works when we execute the query directly on the database, but
> when using the _db methods like query, insert or even fetchRow, we
> always get the same error:  Syntax error: 7 ERROR:  syntax error at or
> near "," LINE 1: ...ate ) VALUES ( 303, 41471, '2007-10-04 04:30:45' ),
> ( 303, 4...
> 
>        
> 
>       So the question is, what would be the best option to insert this
> information? Seems that the insert method does not support associative
> arrays to load all of the info there.
> 
>        
> 
>       Thanks a lot for the help!
> 
>        
> 
>       Camilo
> 
>        
> 
>        
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/About-massive-inserts-tf4569375s16154.html#a13044752
Sent from the Zend Framework mailing list archive at Nabble.com.

Reply via email to