CSV > SQL <!--
Ik heb een vraagje.
Hoe kan ik als ik een CSV bestand upload hem direct omzetten naar SQL?
Dus even heel kort: csv upload > output = sql
bvd,
Loran
Gewijzigd op 22/06/2010 14:10:18 door Loran DP
en wat heb je zelf al gedaan?
Niks, ik wil graag weten hoe ik een CSV kan omzetten naar SQL
Quote:
The file '/Applications/MAMP/tmp/php/phpwIdatK' must be in the database directory or be readable by all
met deze code
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$mysql_account = mysql_connect('localhost','root','root') or die('Er kon geenverbinding met een database worden gemaakt.' );
mysql_select_db('oc', $mysql_account) or die('Kon database niet selecteren.');
$sqlstatement="LOAD DATA INFILE '".$_FILES['filen']['tmp_name']."' into TABLE payments FIELDS TERMINATED BY ',' (clubnr,naam,email,bedrag,omschrijving,betaald)" ;
mysql_query($sqlstatement) or die(mysql_error());;
echo "it is done!";
}
else
{
echo '<form action="" method="post" enctype="multipart/form-data">';
echo 'File: <input type="file" name="filen" /> <input type="submit" name="subform" value="Upload File!" />';
echo '</form>';
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$mysql_account = mysql_connect('localhost','root','root') or die('Er kon geenverbinding met een database worden gemaakt.' );
mysql_select_db('oc', $mysql_account) or die('Kon database niet selecteren.');
$sqlstatement="LOAD DATA INFILE '".$_FILES['filen']['tmp_name']."' into TABLE payments FIELDS TERMINATED BY ',' (clubnr,naam,email,bedrag,omschrijving,betaald)" ;
mysql_query($sqlstatement) or die(mysql_error());;
echo "it is done!";
}
else
{
echo '<form action="" method="post" enctype="multipart/form-data">';
echo 'File: <input type="file" name="filen" /> <input type="submit" name="subform" value="Upload File!" />';
echo '</form>';
}
?>
Gewijzigd op 20/06/2010 23:31:24 door Loran DP
Gewijzigd op 21/06/2010 00:14:34 door Piet Verhagen
Of anders het bestand in PHP uitlezen en daar de benodigde INSERT query opbouwen en uitvoeren...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
switch($_GET['step'])
{
default:
///
$extensions = array('csv');
$tfolder = "csv_temp/";
$scriptloc = "";
$maxfsize = 150;
if($_SERVER['REQUEST_METHOD'] == "POST") {
$fname = $_FILES['filen']['name'];
$fext = strtolower(end(explode('.', $fname)));
$ftemp = $_FILES['filen']['tmp_name'];
$newname = md5(rand(rand(1, 9999), rand(1, 9999))) . "." . $fext;
$target = $tfolder . $newname;
if(!empty($fname)) {
foreach($extensions as $check) {
if($check == $fext) {
$extensioncheck = true;
}
}
if($extensioncheck == true) {
if(filesize($ftemp) > $maxfsize * (1024*1024)) {
echo '<p><font color="red">Uw bestand is groter dan 15 MB</font></p>';
}
else {
if(!strstr(strtolower($fname), "php")) {
$upload = move_uploaded_file($ftemp, $target);
if($upload) {
$_SESSION['csv_temp'] = $newname;
echo "<p>Uw CSV bestand is geupload naar onze server.<br /><br /><br />";
echo '<input class="SubmitBold" type="button" value="Stap 2" onclick="javascript:window.location=\'index.php?step=2 \'"/>';
$succes = true;
}
else {
echo '<p><font color="red">Er is helaas een fout opgetreden. Probeer het bestand nogmaals te uploaden.</font>
<br />Mocht u deze fout meerdere keren krijgen neem dan contact met ons op.</p><br /><br />';
}
}
else {
echo '<p><font color="red">Er is helaas een fout opgetreden. Probeer het bestand nogmaals te uploaden.</font>
<br />Mocht u deze fout meerdere keren krijgen neem dan contact met ons op.</p><br /><br />';
}
}
}
else {
echo '<p><font color="red">U heeft geen CSV bestand geupload.</font>
<br />Mocht u deze fout meerdere keren krijgen neem dan contact met ons op.</p><br /><br />';
}
}
else {
echo '<p><font color="red">U heeft geen bestand opgegeven om te uploaden.</font></p>';
}
}
if($succes !== true) {
echo'
<form action="" method="post" enctype="multipart/form-data">
<div class="blauw" style="width:345px; margin-left:5px"><input type="file" name="filen"/></div>
<input type="submit" name="subform" value="Upload CSV bestand" class="SubmitBold" style="margin-left:5px;"/>
<!--<div class="progress-bar">
<div class="progress-bar-bg"></div>
<div class="progress-bar-text">0%</div>
</div>-->
</form>';
}
///
break;
case'2':
///
$sqlstatement="LOAD DATA INFILE 'csv_temp/".$_SESSION['csv_temp']."' into TABLE payments FIELDS TERMINATED BY ',' (clubnr,naam,email,bedrag,omschrijving)" ;
mysql_query($sqlstatement) or die(mysql_error());;
echo "it is done!";
break;
}
?>
switch($_GET['step'])
{
default:
///
$extensions = array('csv');
$tfolder = "csv_temp/";
$scriptloc = "";
$maxfsize = 150;
if($_SERVER['REQUEST_METHOD'] == "POST") {
$fname = $_FILES['filen']['name'];
$fext = strtolower(end(explode('.', $fname)));
$ftemp = $_FILES['filen']['tmp_name'];
$newname = md5(rand(rand(1, 9999), rand(1, 9999))) . "." . $fext;
$target = $tfolder . $newname;
if(!empty($fname)) {
foreach($extensions as $check) {
if($check == $fext) {
$extensioncheck = true;
}
}
if($extensioncheck == true) {
if(filesize($ftemp) > $maxfsize * (1024*1024)) {
echo '<p><font color="red">Uw bestand is groter dan 15 MB</font></p>';
}
else {
if(!strstr(strtolower($fname), "php")) {
$upload = move_uploaded_file($ftemp, $target);
if($upload) {
$_SESSION['csv_temp'] = $newname;
echo "<p>Uw CSV bestand is geupload naar onze server.<br /><br /><br />";
echo '<input class="SubmitBold" type="button" value="Stap 2" onclick="javascript:window.location=\'index.php?step=2 \'"/>';
$succes = true;
}
else {
echo '<p><font color="red">Er is helaas een fout opgetreden. Probeer het bestand nogmaals te uploaden.</font>
<br />Mocht u deze fout meerdere keren krijgen neem dan contact met ons op.</p><br /><br />';
}
}
else {
echo '<p><font color="red">Er is helaas een fout opgetreden. Probeer het bestand nogmaals te uploaden.</font>
<br />Mocht u deze fout meerdere keren krijgen neem dan contact met ons op.</p><br /><br />';
}
}
}
else {
echo '<p><font color="red">U heeft geen CSV bestand geupload.</font>
<br />Mocht u deze fout meerdere keren krijgen neem dan contact met ons op.</p><br /><br />';
}
}
else {
echo '<p><font color="red">U heeft geen bestand opgegeven om te uploaden.</font></p>';
}
}
if($succes !== true) {
echo'
<form action="" method="post" enctype="multipart/form-data">
<div class="blauw" style="width:345px; margin-left:5px"><input type="file" name="filen"/></div>
<input type="submit" name="subform" value="Upload CSV bestand" class="SubmitBold" style="margin-left:5px;"/>
<!--<div class="progress-bar">
<div class="progress-bar-bg"></div>
<div class="progress-bar-text">0%</div>
</div>-->
</form>';
}
///
break;
case'2':
///
$sqlstatement="LOAD DATA INFILE 'csv_temp/".$_SESSION['csv_temp']."' into TABLE payments FIELDS TERMINATED BY ',' (clubnr,naam,email,bedrag,omschrijving)" ;
mysql_query($sqlstatement) or die(mysql_error());;
echo "it is done!";
break;
}
?>
Alleen ik krijg nu deze error: Can't get stat of '/Applications/MAMP/db/mysql/csv_temp/' (Errcode: 2)
Gewijzigd op 22/06/2010 13:33:19 door Loran DP