Re: Problem with inserting numbers...
| From: | Jim Lucas | Date: | Thu, 11 Aug 2011 19:22:24 +0000 |
| Subject: | Re: Problem with inserting numbers... | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-314504@lists.php.net to get a copy of this message | ||
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