10-28-2010, 03:19 PM
(10-09-2010, 09:29 PM)Disease Wrote: You aren't going to be assigning each line as its own variable. You'd need to know exactly how many lines there are in the file and then it wouldn't be extensible nor flexible. Rather you can use an array. Simply put, an array is a container of values. PHP offers a very simple way to feed each line of a file directory into an array via its file () function.
From there you'd want to build a SQL INSERT statement. Supposing you're using MySQL, you can insert multiple rows in one INSERT statement by creating a list of VALUE pairs. Example:
Code:INSERT into table_name (col1, col2) VALUES (someData, someData), (moreData, moreData), (evenMoreData, evenMoreData)
An example:
PHP Code:<?php
mysql_connect ("server", "username", "password");
mysql_select_db ("database_name");
// Build the lines array, thus $lines[0] will be the first and etc.
$lines = array_map ('trim', file ("file", FILE_SKIP_EMPTY_LINES));
$sql = "INSERT INTO table_name (column_name) VALUES ";
foreach ($lines as $index => $curLine)
{
$sql .= "('$curLine')";
// count () returns the number of lines, but it isn't zero-based, so we add 1 to the line number to make sure it isn't the last element to avoid the trailing comma
if (count ($lines) != ($index + 1))
{
$sql .= ", ";
}
}
// And query it
mysql_query ($sql);
?>
That works for the most part, It works with a small amount of words but I'm trying to insert 1000's-millions and this script dosnt submit them when I try.