By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,264 Members | 1,237 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,264 IT Pros & Developers. It's quick & easy.

Loop of queries fails

P: 3
Hello everyone. I am loading a text file into a MySQL table on my local machine. I am using the code below. The process stops at approx 70,000 records and does not finish. But, there is no error - no "something went wrong" or error in the mysql log. If I run the file for 50,000 records then run the file again, the table will have the full 100,000 and finish properly both times. If I run the file once using the loop to run 2 rounds of 50,000 the table will only have 65,000 records and will not finish. Is it possible there is a limit on the number of queries that can run in one session? How else can I run the full file of 360,000 records?

<?php
$files_root = "path";

$file = $files_root."sample.csv";
$sep = "\",\"";

$fp = fopen($file,"r");
$chunklen = 0;
$chunk[0] = fgets($fp,2048);
$headers = explode($sep, $chunk[0]);
$headers = str_replace("\"", "", $headers);
$headers = str_replace("'", "", $headers);
$numheaders = count($headers);
echo $numheaders;
echo "<br />";
// Check Valid FILE
if ($headers[0] != "text") {
return false;
exit;
}
$chunklen=strlen($chunk[0]);
echo $chunklen."<br />";

echo "Now data <br />";

$host = "localhost";
$user = "motta";
$pass = "xxxxxx";
$dbname = "mottst";

$i = 0;
while ($i < 2) {
$j = 0;
while ($j < 50000) {

$conn = mysql_connect($host,$user,$pass);
// echo $conn;
mysql_select_db($dbname,$conn);
$chunk[0] = fgets($fp,2048);
$fields = explode($sep, $chunk[0]);
$fields = str_replace("\"", "", $fields);
$fields = str_replace("'", "", $fields);

$query_start = "ref_id,vin,vehicle_code,make,model,body_style,mod el_year,v_features,price,max_mileage,ext_color,lon g_description,is_certified,transmission,doors,engi ne_size,comp_postcode,dealer_username";
$query_val = "'{$fields[0]}','{$fields[1]}','{$fields[2]}','{$fields[3]}','{$fields[4]}','{$fields[5]}','{$fields[6]}','{$fields[7]}','{$fields[8]}','{$fields[9]}','{$fields[10]}','{$fields[11]}','{$fields[12]}','{$fields[13]}','{$fields[16]}','{$fields[18]}','{$fields[20]}','{$fields[23]}'";


$query = "insert into temp_tbl(" . $query_start . ") values (" . $query_val . ")";
if (mysql_query($query, $conn)) {
} else {
echo "something went wrong at ".$j;
}

$j++;
} //end of inner while $j


mysql_close($conn);

$i++;

} // end of outer while

fclose($fp);


?>
Dec 18 '07 #1
Share this Question
Share on Google+
1 Reply


P: 3
Issue is Solved. Received the answer through another forum. If I put set_time_limit(0) in the outer loop, the script finishes. The script was taking too long to run. Thank you to all who read this post.
Dec 18 '07 #2

Post your reply

Sign in to post your reply or Sign up for a free account.