Re: Problem with inserting numbers...

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

 



On 8/11/2011 9:34 AM, Jason Pruim wrote:
> 
> Hey Jim,
> 
> Would that still hold true with inserting into a database which is the true end of it? This is going to be a one time thing I'm doing and I'm trying to make it a learning experience as I go since that's what everything should be right?
> 

Yes, taking one of your other emails, you would do something like this.

<?PHP

$SQL = "SELECT  areacode, prefix
        FROM    Test
        WHERE   `areacode` = '907'
        AND     `prefix` = '200'";

$result = mysql_query($SQL);

$values = '';

while( $row = mysql_fetch_assoc($result) ) {
  foreach ( range(0, 9999) AS $n ) {
    $values .= " VALUES ('".
               sprintf('%03d-%03d-%04d', $row['areacode'], $row['prefix'], $n) .
               "')";
  }
}
echo 'INSERT INTO Test (fullnumber) ' . $values;

?>

You should see...

INSERT INTO Test (fullnumber) VALUES ('907-200-0000') VALUES ('907-200-0001')
VALUES ('907-200-0001') etc...

What this allows you to do is have one long string generated in memory then
inserted into the DB.  If you have any type of indexes on this table/column then
it would only require one re-indexing of the table for the single INSERT
statement vs 10000 re-indexes for 10000 separate INSERT statements.

Cuts the DB processing time down a lot.

Also, just so you know, if you place set_time_limit(0); at the top of the
script, it will allow the script to run as long as it needs to.

See: http://php.net/manual/en/function.set-time-limit.php

Jim Lucas

-- 
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