Try this script. It presents a simple file upload form and then tries to insert the data into the table. I haven't used it in ages but I think it works. You'll need to enter your connection parameters and setup the "INSERT..." query.
Hope this helps 😉
<?
$mode = 'test'; // while in 'test' mode it just echos the insert statements
// - set to NULL to exec queries
$record_delimiter = "\n";
$field_delimiter = ",";
$db_host = 'localhost';
$db_user = 'root';
$db_pass = 'turkey';
$db_name = 'test';
if(is_uploaded_file ($userfile)) {
// open uploaded file and read into a var
$filename = $HTTP_POST_FILES['userfile']['tmp_name'];
$handle = fopen ($filename, "r");
$contents = fread ($handle, filesize ($filename));
fclose ($handle);
// setup db connection
$db = @mysql_pconnect($db_host, $db_user, $db_pass)
or die('Failed to connect to db server.<br>MySQL error: '.mysql_error());
@mysql_select_db($db_name)
or die('Failed to select db.<br>MySQL error: '.mysql_error());
// nowcreate array - each element being a row from the file
$contents_array = explode($record_delimiter, $contents);
reset ($contents_array);
while (list ($key, $val) = each ($contents_array)) {
$fields = explode($field_delimiter, $val);
$sql = "INSERT INTO tbl_name(col1,col2,col3) VALUES('".trim($fields[0])."','".trim($fields[1])."','".trim($fields[2])."')";
if ($mode=='test') {
echo $sql.'<br>';
}
else {
$res = @mysql_query($sql, $db)
or die ('<b>Insert failed.</b><br>MySQL error: '.mysql_error().'<br>Query: '.$sql);
}
}
}
else {
echo <<<FORM
<form action="$PHP_SELF" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Upload: <input name="userfile" type="file"><br><br>
<input type="submit" value="Upload and insert csv data">
</form>
FORM;
}
?>