Ik heb een script dat vanuit een (met access gemaakt) csv file een database vult. Heel mooi, alleen loop ik nu tegen het probleen aan dat ik veld birthdate niet kan invoeren als type date of timestamp.
Dit is het formaat wat nigevoerd wordt: 7-2-2004 0:00:00
Maar het kan ook: 7-12-2004 0:00:00 zijn
Dit moet dus omgezet worden naar formaat: 2004-02-07 om hem goed in mn database te krijgen.
Ik heb daarvoor deze code geschreven, maar omdat het om meer dan 300.000 personen gaat die in die database staan, duut dit een eeuwigheid:
Is er een manier dit sneller te doen? Tijden het verwerken van de csv naar de mysql database is dit niet mogelijk. Ik gebruik daarvoor dit scriptje:
Dit is het formaat wat nigevoerd wordt: 7-2-2004 0:00:00
Maar het kan ook: 7-12-2004 0:00:00 zijn
Dit moet dus omgezet worden naar formaat: 2004-02-07 om hem goed in mn database te krijgen.
Ik heb daarvoor deze code geschreven, maar omdat het om meer dan 300.000 personen gaat die in die database staan, duut dit een eeuwigheid:
code:
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
| $sql=mysql_query("SELECT birthday FROM person"); while($row=mysql_fetch_array($sql)) { $d = substr($row[birthdate], 0, 2); if(substr($d,1)=="-") { $d="0".substr($d,0); $m=substr($row[birthdate], 2, 4); if(substr($m,1)=="-") { $m="0".substr($m,0); $j=substr($row[birthdate],4,8); } else { $j=substr($row[birthdate],5,9); } }else { $m=substr($row[birthdate], 3, 5); if(substr($m,1)=="-") { $m="0".substr($m,0); $j=substr($row[birthdate],5,9); } else { $j=substr($row[birthdate],6,10); } } $geb=$j.$m.$d; mysql_query("UPDATE person SET gebdat='$geb' WHERE personid='$row[personid]'"); } |
Is er een manier dit sneller te doen? Tijden het verwerken van de csv naar de mysql database is dit niet mogelijk. Ik gebruik daarvoor dit scriptje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| mysql_connect($db_Hostname[$i], $db_UserName[$i], $db_Password[$i])or die(mysql_error()); mysql_select_db($db_Database[$i]); $del = "DELETE FROM ".$db_Table[$i]; $sql = "LOAD DATA INFILE '$db_File[$i]' REPLACE INTO TABLE ".$db_Table[$i]." FIELDS TERMINATED BY '$db_Terminated[$i]'"; if (mysql_query ($del) and mysql_query ($sql)) { $sql2=mysql_query("SELECT * FROM $db_Table[$i] "); $num=mysql_num_rows($sql2); $message = "<font color=green>Met succes $num files geupdated in table $db_Table[$i]</font><br><BR>"; } else { $message = "<font color=red>Foutje tijdens update table $db_Table[$i]: ". mysql_error ()."</font><BR>"; } |