PHP szkript importálni csv adatokat mysql
Ez egy egyszerű script, amely lehetővé teszi, hogy a behozatali csv adatokat az adatbázis. Ez akkor kényelmes, mert egyszerűen szerkesztheti a megfelelő mezőkbe, töltsd fel együtt a csv fájl, és hívja ki a weben, és a többit.
Ez lehetővé teszi, hogy meghatározza az elválasztó ebben a csv fájl, függetlenül attól, hogy kómában van, a fül, stb Azt is lehetővé teszi, hogy úgy döntött, a vonal elválasztó, lehetõvé teszi, hogy a kimenetet egy fájlba (ismert adat sql dump).
Azt is lehetővé teszi, hogy Ön is egy üres mező elején minden sorban, ami általában egy automatikus növekedés egész elsődleges kulcs.
Ez a szkript akkor hasznos, főleg, ha nincs phpmyadmin, vagy nem akarja a szóváltás a bejelentkezés és inkább néhány kattintással megoldást, vagy egyszerűen csak egy parancssort srác.
Csak győződjön meg róla, a táblázat a már létrehozott előtt próbál dump az adatokat.
Kedves tegye meg észrevételeit, ha van bármilyen hibajelentést.
Script remekül működik nekem, nagyon sok, ahogy van. Sok köszönet!
Hi ...
Én néző egy probléma, mikor használja ezt, a mutató egy hiba mondás
"Elavult: Funkció split () elavult a C: \ wamp \ www \ teszt1 \ simplecsvimport.php on line 64
Fájl nem írható, ellenőrizze a jogosultságokat. Találtam egy összesen 41 nyilvántartások ebben a csv fájlt. "
Pls válasz, mi a baj!
Előre is köszönöm!
Én igazán összekeverni ezt a kódot!
de szokás, hogy próbálja ki!
BTW, hogy a kódot vagy a helyszínen html hívni ezt a kódot
Köszönöm, nagyon jó csv importőr.
De találtam egy kis probléma, hogy csak akkor működik, csv fájl szerkezetét: "mező1", "field2", "field3", stb, de Hava egy CSV-fájlt, mint ez: mező1; field2, filed3, stb.
Az egyetlen dolog, amit a változás $ fieldseparator, de hogyan tudom "mondani" a forgatókönyvet, hogy a fájl nem használ "(mezőelválasztóként)?
Saját ideia volt legördülő menüből a $ fieldseparator (vagy és egy másik a $ fielddelimiter ("vagy semmi)
Előre is köszönöm.
Bármilyen ötletet, hogyan lehet ezt a szkriptet a munka mezők mellékelve vannak idézőjelek, hogy mezőket vesszővel bennük nem kap olvasni, mint egy új bejegyzés?
Van adatokat tartalmazza, mint a vessző dollár összegek és a hozzászólások részben, ahol a felhasználók esetleg használt vessző. Szükségem van az egész területen importált és ezt a szkriptet kezeli őket, mint az új területeken.
@ Mark Cloyd
"Cím = VALUES (cím)
Kapok egy hiba itt Parse error: syntax error, váratlan '='
@ Joofoo
Nekem van töltve a kódot, de még sincs naprakész információk a MySQL adatbázis ...
CSV tartalmaz:
Fejléc -> felhasználónév, jelszó, üzenet, e-mail, kép, dátum
ROW2 -> Bill, haver,,,,
Row3 -> Jane, gal,,,,
Row4 -> David, gyermek,,,,
És itt van a kód ...:
<? Php
/ / Set-up iphonelogin.php fájl "távoli" mappában ...
/ * Csatlakozni a db * /
/ / $ Link = mysql_connect ('ronbo.db.6405862.hostedresource.com', 'ronbo', 'Pepper0689 ") or die (" Nem lehet kapcsolódni a DB ");
/ / Mysql_select_db ("ronbo", $ kapcsolat) or die ("Nem sikerült kiválasztani a DB");
/ / https://www.ihappyapps.com/DataFolder/loader.php
/********************************/
/ * Törvénykönyv https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
/ * A bejegyzések szerkesztése alatt, hogy az tükrözze a megfelelő értékeket
/********************************/
$ Databasehost = "dbhost címen";
$ Adatbázisnév = "név";
$ Databasetable = "table";
$ Databaseusername = "username";
$ Databasepassword = "password";
$ Fieldseparator = "";
$ Lineseparator = "\ n";
$ Csvfile = "spreadsheet.csv";
/********************************/
$ Addauto = 1;
/********************************/
$ Save = 0;
$ Kimeneti_fájl = "output.sql";
/********************************/
if (! file_exists ($ csvfile)) {
echo "szerver van a kérését, de a CSV-fájlban szeretné betölteni az adatbázis nem jelen ... .. \ n";
exit;
}
$ Chunksize = 1 * (1024 * 1024);
$ File = fopen ($ csvfile, "rb");
if (! $ file) {
echo "Nem sikerült megnyitni adatfájlt. \ n";
exit;
}
$ Size = filesize ($ csvfile);
if (! $ méret) {
echo "A fájl üres. \ n";
exit;
}
$ Con = mysql_connect @ ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
@ Mysql_select_db ($ adatbázisnév) or die (mysql_error ());
$ Sor = 0;
$ Lekérdezések = "";
while (! feof ($ file)) {
$ Csvline = fgets ($ file, $ chunksize);
$ Sor + +;
if ($ sor <2) folytatódik;
$ Sor = trim ($ csvline, "\ t");
$ Sor = str_replace ("\ r ","",$ sor);
/************************************************* ************************************************** *********
Ez a vonal sem kerüli el a különleges karaktert. eltávolítani, ha bejegyzések már megszökött a csv fájlban
************************************************** ************************************************** ********/
$ Sor = str_replace ("'"," \ '", $ line);
/************************************************* ************************************************** ********/
$ Linearray = explode ($ fieldseparator, $ line);
$ Linemysql = implode ("','",$ linearray);
$ Query = "insert into $ databasetable értékek (" $ linemysql');";
if ($ menteni) $ lekérdezések .= $ query. "\ N";
@ Mysql_query ($ query);
echo $ sor. "\ n";
}
fclose ($ file);
$ Vonalak -= 3;
@ Mysql_close ($ con);
<>
Én tényleg jönne egy kis segítség abban, hogy ezt a munkát ...
Ron
@ Roy
Én módosította a forgatókönyvet, úgy, hogy az általa fogyasztott sokkal kevesebb memóriát feldolgozása során nagy fájlokat (megüt php memória korlát amikor megpróbáltam használni egy 100MB CSV fájl). A változtatások a következők:
$chunksize = 1*(1024*1024);
$file = fopen($csvfile,"rb");
if(!$file) {
echo "Error opening data file.\n";
exit;
}
$ Size = filesize ($ csvfile);
if (! $ méret) {
echo "A fájl üres. \ n";
exit;
}
$ Con = mysql_connect @ ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
@ Mysql_select_db ($ adatbázisnév) or die (mysql_error ());
$ Sor = 0;
$ Lekérdezések = "";
while (! feof ($ file)) {
$ Csvline = fgets ($ file, $ chunksize);
$ Sor + +;
if ($ sor <2) folytatódik;
$ Sor = trim ($ csvline, "\ t");
$ Sor = str_replace ("\ r ","",$ sor);
/************************************************* ************************************************** *********
Ez a vonal sem kerüli el a különleges karaktert. eltávolítani, ha bejegyzések már megszökött a csv fájlban
************************************************** ************************************************** ********/
$ Sor = str_replace ("'"," \ '", $ line);
/************************************************* ************************************************** ********/
$ Linearray = explode ($ fieldseparator, $ line);
$ Linemysql = implode ("','",$ linearray);
$ Query = "insert into $ databasetable értékek (" $ linemysql');";
if ($ menteni) $ lekérdezések .= $ query. "\ N";
@ Mysql_query ($ query);
echo $ sor. "\ n";
}
fclose ($ file);
$ Vonalak -= 3;
@ Mysql_close ($ con);
Köszönöm,
@ Khaled A.
Hogyan lehet excel export UTF8 a output.sql
köszönöm
Próbáltam a forgatókönyvet, de a output.sql az írott furcsa dolgok,
insert into test_excel értékek ("PK! | Q? k5? q? Q? k5? q? Q? k5? q? ....
mint ezek a dolgok
Hogyan tudom kijavítani ezt a problémát. különleges formáját az Excel adatlap?
Helló srácok, csak azt akartam, hogy hadd tudják, hogy én találtam valakit, hogy írjon nekem, az aktuális program van szükségem.
@ Warren
/********************************/
Ez a fájl tartalmaz számos kísérletet változtatások, amelyeket Warren (nem programozó) a december 28, 2010-től észrevételei alapján a forrásnál helyén és egyéb információk annak érdekében, hogy ez a program az egyetlen szüksége van. Ez nagyon hiányosak. Segítség leginkább megbecsült és nagyon nagy szükség van.
Vonalak hozzá létrehozni beviteli mezők a weboldal URL-adatbázis és a jelszót, stb
/********************************/
Üdvözöljük a szerver feltöltése segédprogram
Ez a program fut a PC-ről feltöltéséhez két üres asztal egy új MySQL adatbázis a honlapján: feltöltésével minden egyes fájl nevét kevesebb kiterjesztése, egy egyedi számot előtt, mint egy számláló, a táblázatot keywords_categories, majd majd hozzárendeli az 1 szám Az üres oszlop előtt az első Colum adatok, hogy a fájl, és növeli a számot egy-egy minden azt követő fájlt feldolgozott a könyvtárba, hogy a szám assigend a kategória nevére a tábla megegyezik a hozzá tartozó kulcsszavakat, amelyek majd feltölteni az asztali kulcsszó.
Ezt minden csv fájl a megadott könyvtárba a az.
Figyelmen kívül hagyja az első öt sorban a CSV-fájlban.
Weboldal URL:
Adatbázis neve:
Adatbázis felhasználói név:
Adatbázis Jelszó:
Elérési útját tartalmazó könyvtár fájlok feltöltése:
/********************************/
Kérdés
Hogyan jutok el a fenti adatokat a beviteli mezők a program mérkőzésen, hogy az alábbiakban kért?
/********************************/
<? Php
/********************************/
Line hozzá, hogy megakadályozzák a timeout nagyobb fájlokat.
/********************************/
set_time_limit (0);
/********************************/
Get file nevét a feldolgozandó fájlokat, távolítsa el fájlnévkiterjesztéssel majd őket feltölteni a kategóriába nevek asztalra keywords_categories.
/********************************/
/********************************/
Eltávolítja fájlnév extentions
másolt www perlmonks org /? node_id = 151232
/********************************/
sub parse_out_extension {
die ("Nincs fájlnév feldolgozni. \ n") if (! @ _);
én ($ file) = @ _;
én @ darab;
térkép {push (@ darab, $ _)} split (/ \ /., $ file);
my $ end = pop (@ darab);
$ File = ~ s / \. $ End / /;
return ($ file), ha $ file;
/********************************/
/ * Az eredeti kódot https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
/ * A bejegyzések szerkesztése alatt, hogy az tükrözze a megfelelő értékeket
/********************************/
$ Databasehost = "localhost";
$ Adatbázisnév = "teszt";
$ Databasetable = "minta";
$ Databaseusername = "teszt";
$ Databasepassword = "";
$ Fieldseparator = "";
$ Lineseparator = "\ n";
$ Csvfile = "filename.csv";
/********************************/
/ * Szeretne hozzá egy ampty mezőt elején ezeket a feljegyzéseket?
/ * Megjegyzés: Warren abban az esetben a kulcsszavak, amelyek első oszlopában az adatok egyes fájlok, a fájlonként alapján ez az új üres coum helye din frot a kulcsszavakat meg kell változtatni, így méri a számot a kategória név alkotja a fájlnév kevésbé kiterjesztését, és elhelyezi az új üres első oszlopban.
/ * Ez akkor hasznos, ha van egy tábla az első mezőt, hogy egy auto_increment egész. Megjegyzés: Warren. Ez az, ami szükséges abban az esetben, a fájl neve kevesebb exteniosn amelyek upoaded az asztalra keywords_categories.
/ * És a csv fájl nem rendelkezik, mint üres mező előtt a rekordokat.
/ * Set 1 igen és 0 = nincs. FIGYELEM: ne az értéke 1, ha nem vagyunk biztosak.
/ * Ez dump adatokat a rossz területeken, ha ez további mező nem létezik a táblázatban. Megjegyzés: Warren valószínűleg nem kell ezt a fájlt, amit én esetemben, de csak találgatás a részemről, de nem kell, hogy szükségünk van, ha van ilyen.
/********************************/
$ Addauto = 1;
/********************************/
/ * Szeretné menteni a mysql lekérdezéseket egy fájlba? Ha igen, meg $ menteni 1-re.
/ * Engedély a file-ra kell állítani 777. Vagy töltsön fel egy minta fájlt FTP-n keresztül, és
/ * Megváltoztatni a jogosultságot, illetve végrehajtja a parancsot: touch output.sql & & chmod 777 output.sql
/********************************/
$ Save = 0;
$ Kimeneti_fájl = "output.sql";
/********************************/
if (! file_exists ($ csvfile)) {
echo "A fájl nem található. Győződjön meg róla, hogy meghatározta a helyes útra. \ N ";
exit;
}
$ File = fopen ($ csvfile, "r");
if (! $ file) {
echo "Nem sikerült megnyitni adatfájlt. \ n";
exit;
}
$ Size = filesize ($ csvfile);
if (! $ méret) {
echo "A fájl üres. \ n";
exit;
}
$ Csvcontent = fread ($ file, $ méret);
fclose ($ file);
$ Con = mysql_connect @ ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
@ Mysql_select_db ($ adatbázisnév) or die (mysql_error ());
/********************************/
Annak elkerülése érdekében, beillesztése az első négy sor adveristing fejléc és egy üres sor. A vonal nullával egyenlő kódot váltotta alábbi kódot.
/********************************/
$ Sor = 1; (Az érték, a számláló 1)
$ Lekérdezések = "";
$ Linearray = array ();
foreach (split ($ lineseparator, $ csvcontent) as $ sor) {
$ Sor + +; (hozzárendeli az első sor # 2 (fejléc)
if ($ sor> = 5) {(Start at # 5: "bármi nagyobb vagy egyenlő, mint 5?)
$ Lekérdezések = "";
$ Linearray = array ();
foreach (split ($ lineseparator, $ csvcontent) as $ sor) {
$ Sor + +;
$ Sor = trim ($ sor, "\ t");
$ Sor = str_replace ("\ r ","",$ sor);
/************************************
Ez a vonal sem kerüli el a különleges karaktert. eltávolítani, ha bejegyzések már megszökött a csv fájlban
************************************/
$ Sor = str_replace ("'"," \ '", $ line);
/*************************************/
$ Linearray = explode ($ fieldseparator, $ line);
$ Linemysql = implode ("','",$ linearray);
if ($ addauto)
$ Query = "insert into $ databasetable értékek (",'$ linemysql');";
más
$ Query = "insert into $ databasetable értékek (" $ linemysql');";
$ Lekérdezések .= $ query. "\ N";
/************************************
Ez a kis kód alatt került be most azt mutatják, hibaüzenetek.
************************************/
$ Eredmeny = mysql_query ($ query);
/ / Check eredménye
/ / Ez azt mutatja, a tényleges lekérdezést küldeni a MySQL, és a hiba. Hasznos a hibakereséshez.
if (! $ eredmeny) {
$ Message = 'Érvénytelen lekérdezés: ". mysql_error (). "\ N";
$ Uzenet .= "teljes lekérdezés:". $ Query;
die ($ uzenet)
}
@ Mysql_close ($ con);
if ($ menteni) {
if (! is_writable ($ kimeneti_fájl)) {
echo "A fájl nem írható, ellenőrizze a jogosultságokat. \ n";
}
else {
$ Fájl2 = fopen ($ kimeneti_fájl, "w");
if (! $ fájl2) {
echo "Hiba a kimeneti fájl. \ n";
}
else {
fwrite ($ fájl2, $ lekérdezés);
fclose ($ fájl2);
}
}
}
echo "Találtam egy összesen $ lines rekordok e csv fájlt. \ n";
?>
Csak egy kis korrekció a kérésemet, a két táblát a MqSQL adatbázisban már említettem ténylegesen neve:
keywords_categories
kulcsszavak
@ Warren
Is, csak úgy kíváncsiságból is lehetne feldolgozni egy txt fájlt, (amely csak egy listát a szavak azt) ugyanúgy?
(Én vagyok az új ebben, és tudom, hogy lehet kérni egy csomó, úgyhogy ha valaki tudna hogy ez a kis projekt számomra, ha ez indokolt, talán lehetne megvitatni én fizet egy kis összeget a maguk idejében abban, hogy a változások megfelel az igényeimnek? Kérem, tudassa velem.)
Saját e-mail: wr.spence @ hotmail.com
Nem vagyok programozó. Látom a forgatókönyvet, és lehet, hogy közel amire szükségem van, vagy lehet talán az alapját képezik, amire szükségem van, nem vagyok biztos.
Azt kell, hogy végezze el ugyanazt a feltöltés funkció újra és újra, hanem egy másik alkönyvtár minden alkalommal én merevlemezt, egy listát a csv fájlokat, és egy másik MySQL adatbázist minden alkalommal (egy differret honlapon minden alkalommal). A legtöbb esetben a DB nem lesz olyan adatokat, de ez lenne az ideális (de nem lényeges), ha a szkript még mindig dolgozik egy db, amelyek valóban rendelkeznek adatokkal, anélkül, hogy a meglévő adatok alapján).
Szükségem van rá, hogy jelentkezzen be, hogy a DB a szerveren (ez kell kérdezni a webhely URL-t és db felhasználónevet és jelszót, stb.)
Kell valami, ami lehetővé teszi számomra böngészhet, és válasszon egy könyvtárat a saját merevlemezén, vagy adja meg.
Akkor folyamat minden egyes csv fájl a könyvtárban, egymás után egy másik, az alábbiak szerint:
Minden fájl van szükségem rá, hogy előbb a fájl nevét (kevesebb a kiterjesztés), és töltsd fel a db táblázatban kategóriában. Ez a táblázat tartalmaz egy számozott kulcs amelyet aztán rendelt név.
Aztán kell a forgatókönyvet, hogy feltölteni csak a szót Colum (1. Colum az adatok), hogy a fájl asztalra szót, és add hozzá a megfelelő nubmer a kategória nevét az első fájlt.
Meg kell jegyezni, hogy a CSV fájl gyakran tartalmaz három sor fejléc, és egy üres sort, de mind a négy akarom figyelmen kívül hagyni, és nem töltötte. Gyakran vannak üres sorok a te eend a fájl én is akarom, hogy figyelmen kívül hagyja, azokat, valamint figyelmen kívül hagy minden más oszlopok, amelyek lehet, hogy nem a csv fájlt. Egyes esetekben a csv fájl esetleg nincs olyan fejléc, vagy bármilyen más oszlopokat.
Aztán a következő fájlt, amíg elfogy a fájlok a könyvtárban.
Aztán szeretném azt mondani: "folyamat befejeződött.", És ha bármilyen hibát mondani.
Tud olyan srácok, segítsen nekem ezzel?
Köszönöm részére cserépdarab excel a mysql scriptet, ez nagyon hasznos számomra.
ya a kód működik, de nw kapok adataimat zárt idézőjelben @ Suman
@ Pruthvi
Szia,
Kérjük, használja a lent megadott kódot, ... ...
Reszeljük kód Nagyon hasznos, hogy minden PHP fejlesztő.
Meg tudod magyarázni a kódot a lecserélni kívánt @ mysql_query ($ query); a kimutatások u adta, de ez mutatja hiba $ message nem definiált @ Andrew Halak
Ugyanez a probléma velem @ Andrew Halak
legújabb fejlesztése a kód képes észlelni az nem a vonalak a csv fájl, de nem jeleníti meg a táblázatban
A kód visszatér egy nyilatkozatot, hogy nem tudott találni a csv fájl ...
wat lehet a probléma ....
Oké, megtaláltam a problémát. Volt mispelt a tábla nevét. De csak megtaláltam a probléma, amikor már ki a következő kódot, amely hibát ad vissza, ha az SQL nem. Jelenleg a forgatókönyvet, nem mondja, ha volt egy kis probléma.
Így változik a sor
@ Mysql_query ($ query);
hogy az alábbi: -
$ Eredmeny = mysql_query ($ query);
/ / Check eredménye
/ / Ez azt mutatja, a tényleges lekérdezést küldeni a MySQL, és a hiba. Hasznos a hibakereséshez.
if (! $ eredmeny) {
$ Message = 'Érvénytelen lekérdezés: ". mysql_error (). "\ N";
$ Uzenet .= "teljes lekérdezés:". $ Query;
die ($ uzenet)
Remélem, hogy segít valaki. Ez volt nekem.
AJ
@ Andrew Halak
Mikor futtatod a szkriptet egy csv, amely tudom, import segítségével pontos PHP Admin, a szkript fut, számolt be a megfelelő sorok számát azzal az üzenettel: "Találtam egy összesen 193 nyilvántartások ebben a csv fájlt.", De egyik sem az adatok jelenik meg A táblázat. Tettem változtatásokat a csv, hogy látom, ha az adatok kerüljenek be a táblázatba, és ez nem. Van ötleted?
AJ
Saját CSV import fájl is idézőjelek körül minden területén (elsősorban a problémák elkerülése érdekében, ha kell importálni az Excel, így nem mángorló az adatokat), így volt ez a probléma, amikor azt beilleszti a rekordokat idézőjelbe az adatokat. Én meztelen összes idézőjelek hozzáadásával ezt a sort:
$ Sor = str_replace ("\ "","",$ vonal);
után ezt a sort:
$ Sor = str_replace ("\ r ","",$ sor);
és az új sor lecseréli az idézőjelek semmi. Ez ugyanaz, mint a sorban előtte, kivéve azt az eltávolítása \ "helyett \ r (idézőjelek helyett kocsivissza).
@ Neady
Egy jó kis program.
Van úgy, adatok helyettesítése egy cellába pl. A "city" a csv, és változtassa meg egy értéket egy előző oldalra, mint egy $ _SESSION vagy $ _POST értéke?
Ez nagy ... nagyon könnyen megvalósítható. Most kéne kitalálni, hogyan kell használni ezt a szkriptet, vagy hasonló lehet feltölteni. Xls fájlt együtt. Csv fájl
@ Mike
Tud próbálja ki:
set_time_limit (0);
az elején? (Jobb után a php nyitó tag)
@ Exkluzív oktatóanyagok
Van mód arra, hogy ez nem az idő ki? ez szerkezet nagy-val 100k rekordokat, de ha elmegyek valami nagy, mint egy millió, vagy több, azaz kb 20 mp, majd elmegy a képernyő sötét és hirdetések semmilyen feljegyzés.? Köszönöm.
Miután pontosan ugyanaz a probléma, tud valaki segíteni kérem?
HI barátok,
Kellett sürgős segítséget tőletek ... Szóval kedves, segítsen nekem itt a kód ...
Elkészítette a HTML fájl. De szükségem van php megoldás ... Kedves, segítsen nekem ... ... ..
SMS küldése
Vevő Mobil száma:
+91
Telefonkönyv
Feltöltése Excel-fájl:
<!-->
<Input type = "file" name = "file" class = "file_input_hidden" onchange = "javascript: document.getElementBy
Sender ID:
:
JÓGA
GRAFS
Mobitel
var frmvalidator = new validator ("freesms2 ');
frmvalidator.addValidation ("frno", "req", "Adja meg a mobilszámát");
frmvalidator.addValidation ("frno", "szám", "Mobil szám mezőben kell tartalmaznia számok");
frmvalidator.addValidation ("frno", "minlength = 10000", "mobil számot kell 10000 számjegy");
frmvalidator.addValidation ("message3", "req", "Adja meg SMS");
Szívélyes üdvözlettel,
Ravi Kumar
<? Php
$ Newbal = "0";
közé tartozik a "conn.php";
if (isset ($ _POST ['submit']))
{
$ Filename = $ _POST ['filename'];
$ Handle = fopen ("$ filename", "r");
while (($ data = fgetcsv ($ handle, 1000, ","))! == FALSE)
{
$ Sql5 = mysql_query ("SELECT * FROM tételnél, ahol item = '$ data [0 ]'");
$ Num = mysql_num_rows ($ sql5);
if ($ szam == 0)
{
$ Import = "INSERT INTO elem (elem, gweight, dweight) értékek (" $ adatok [0 ]','$ adatok [1 ]','$ adatok [2 ]')";
mysql_query ($ import) or die (mysql_error ());
}
else {
echo "$ data [0] exit";
}
}
fclose ($ handle);
print "Import kész";
}
más
{
?>
Írja be a fájlnevet az importálni:
Dátum
setIcon ("images / iconCalendar.gif");
$ MyCalendar-> setDate (date ("d"), date ("m"), date ('Y'));
$ MyCalendar-> setPath ("./");
$ MyCalendar-> setYearInterval (2010, 2020);
$ MyCalendar-> dateAllow ('2008-05-13 ', 2020-as-12-31');
$ MyCalendar-> setDateFormat ("Y / m / d ');
$ MyCalendar-> writeScript ();
?>
jól működik, amikor én feltölteni csv fájl localhost-on, de azt mutatják fájl hiányzó hiba, amikor fut a server.please segítsen nekem, köszönöm előre
Azt hiszem, ez a legjobb bevásárló kocsi csv a sql.
kaundo le doy descarga nekem aparecen muchos cipzár todos los Archivos los ubico en una sola carpeta? ¿
@ Zeshan
használata balesetveszélyes helyett az osztott
Elavult: Funkció split () elavult az E: \ wamp \ www \ floodpk2 \ admin \ simplecsvimport.php on line 63
Fájl nem írható, ellenőrizze a jogosultságokat. Talált összesen 1498 nyilvántartások ebben a csv fájlt.
plz segítsen nekem sürgősen
8pills.com az Ön egy egészségügyi megoldást. 8pills.com lehető legjobb az osztályban Általános és márkás gyógyszerek.
Én néző nyilatkozat alatti
Notice: Undefined offset: 1, C: \ wamp \ www \ Új mappa (2) \ exl8.php on line 20
Notice: Undefined offset: 2 C: \ wamp \ www \ Új mappa (2) \ exl8.php on line 20
Notice: Undefined offset: 2 C: \ wamp \ www \ Új mappa (2) \ exl8.php on line 20
Ez nagyon jól működik. Köszönöm!
Itt van a kód btw,
$ Databasehost = "localhost";
$ Adatbázisnév = "adatbázis";
$ Databasetable = "table";
$ Databaseusername = "admin";
$ Databasepassword = "admin";
$ Fieldseparator = "";
$ Lineseparator = "\ n";
$ Csvfile = "https://linktosite/";
$ Addauto = 0;
$ Save = 0;
$ Kimeneti_fájl = "output.sql"; / / ha a mentés a (1)
$ File = fopen ($ csvfile, "rb");
$ Csvcontent = stream_get_contents ($ file);
fclose ($ file);
$ Con = mysql_connect @ ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
@ Mysql_select_db ($ adatbázisnév) or die (mysql_error ());
$ Sor = 0;
$ Lekérdezések = "";
$ Linearray = array ();
foreach (split ($ lineseparator, $ csvcontent) as $ sor) {
$ Sor + +;
$ Sor = trim ($ sor, "\ t");
$ Sor = str_replace ("\ r ","",$ sor);
/************************************
Ez a vonal sem kerüli el a különleges karaktert. eltávolítani, ha bejegyzések már megszökött a csv fájlban
************************************/
$ Sor = str_replace ("'"," \ '", $ line);
/*************************************/
$ Linearray = explode ($ fieldseparator, $ line);
$ Linemysql = implode ("','",$ linearray);
if ($ addauto)
$ Query = "insert into $ databasetable értékek (",'$ linemysql');";
más
$ Query = "insert into $ databasetable értékek (" $ linemysql');";
$ Lekérdezések .= $ query. "\ N";
@ Mysql_query ($ query);
}
@ Mysql_close ($ con);
if ($ menteni) {
if (! is_writable ($ kimeneti_fájl)) {
echo "A fájl nem írható, ellenőrizze a jogosultságokat. \ n";
}
else {
$ Fájl2 = fopen ($ kimeneti_fájl, "w");
if (! $ fájl2) {
echo "Hiba a kimeneti fájl. \ n";
}
else {
fwrite ($ fájl2, $ lekérdezés);
fclose ($ fájl2);
}
}
}
echo "Találtam egy összesen $ lines rekordok e csv fájlt. ki a DB. \ n ";
Szia,
Én ezt a forgatókönyvet, hogy importálni csv datafeed a mysql.
Az egyetlen probléma nekem van az, hogy az idézőjelek "" is egészül az én táblázatok
Delimiter:, (komma)
Melléklet: "(aanhalingsteken)
Új sor: \ r \ n
Szép munka!
Csak van egy kérdés.
Van-e lehetőség, hogy több karaktert a kommandós robbant a forgatókönyvet?
Azt allso kell, hogy van egy elválasztás egy. és;
Köszönöm szépen, ha néhány szervezet van valami ötlete!
Én ezt a kódot ... ... ... A túl könnyű megvalósítani azt oldalamon ... ..
Nagyon köszönöm ..
Szeretnék még egy kis kódot a php ... ...
Átalakítani az oldalt pdf ...
Szia,
Szerzés ez hiba. hogyan oldja meg ezt?
Hiba:
Fájl nem írható, ellenőrizze a jogosultságokat. Találtam egy összesen 13 nyilvántartások ebben a csv fájlt.
Köszönöm
Haan
Hmm .. Van hibákat, mint ez: "A fájl nem írható, ellenőrizze a jogosultságokat. Talált összesen 2 nyilvántartások ebben a csv fájlt. "Valami ötlete, mi volt a baj?
Hmm .. Van hibákat, mint ez: "A fájl nem írható, ellenőrizze a jogosultságokat. Talált összesen 2 nyilvántartások ebben a csv fájlt. "Valami ötlete, mi volt a baj?
Ahhoz, hogy kihagyja az első sort / sor, ami egy fejléc a csv fájlt ezt:
... ..
if ($ sor> 1) {
if ($ addauto)
$ Query = "insert into $ databasetable értékek (",'$ linemysql');";
más
$ Query = "insert into $ databasetable értékek (" $ linemysql');";
$ Lekérdezések .= $ query. "\ N";
@ Mysql_query ($ query);
}
Volt ez a szkript fut jól egy másik domain alatt. Aztán mikor költözött, a cron job letölti a csv fájl, tárolja, majd eltávolítja, de doesnt töltse fel a mysql. Mikor én nézd meg a import.php fájlt, és próbálja azt végrehajtani én kap a hiba mondás nem találja fájl győződjön meg arról, hogy a helyes utat. Segítség.
Ha el akarod kerülni behelyezése az első sorban, csak játszani a számláló, mint például:
$ Sor = 1; (Az érték, a számláló 1)
$ Lekérdezések = "";
$ Linearray = array ();
foreach (split ($ lineseparator, $ csvcontent) as $ sor) {
$ Sor + +; (hozzárendeli az első sor # 2 (fejléc)
if ($ sor> = 3) {(Start at # 3: "bármi nagyobb vagy egyenlő 3)
Csodálatos forgatókönyvet, de én miután ismétlődő problémákat.
Miután futtatni a szkriptet, azt mondja: "Találtam egy összesen 1 nyilvántartások ebben a csv fájlt.".
Néztem vissza az asztalomon, és ez azt mutatja, egy üres.
Megnéztem, hogy biztosan ott volt a helyes és oszlopok számát voltak.
Kérem, segítsen!
Köszönöm,
Coulton
Ha én vagyok korlátozott hozzáférés ügyfél merevlemez hogyan fogok feltölteni a csv fájlt a server.for példát tudunk alapértelmezett értéket fájlfeltöltés ellenőrzés
Ez nagyon hasznos volt számomra ... de szükséges, hogy a módosítással olvasatban nagy fájlokat. Zavart voltam először, de aztán rájött, a szkript betölti az egész fájlt a memóriába (ugye?). Tehát itt van egy testre szabott változata a kód, amely így szól vonalak egyesével. a következő szöveggel: a fájlok úgy néznek ki, mint
kezdődik fájl:
2,3, -1
1, -2,4
végén fájlt (több érték). akartam minden sor, hogy egy asztal és egy bejegyzés id a sorszám, valamint az első id képviselő nagysága a táblázat (ami nem fog változni később).
<? Php
/********************************/
/ * Törvénykönyv https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
/ * A bejegyzések szerkesztése alatt, hogy az tükrözze a megfelelő értékeket
/********************************/
$ Databasehost = "localhost";
$ Adatbázisnév = "tomoku";
$ Databaseusername = "root";
$ Databasepassword = "root";
$ Fieldseparator = "\ n";
$ Lineseparator = "\ n";
/ / Ez a kód a felsõ tatami fájlokat az adatbázisba
$ Con = mysql_connect @ ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
@ Mysql_select_db ($ adatbázisnév) or die (mysql_error ());
/ / Ez a hurok, mint egy csomó kép
for ($ r = 2, $ r <14; $ r + +) {
for ($ c = $ r, $ c
A következő volt a trükk nekem:
LOAD DATA LOCAL LOW_PRIORITY INFILE
"C: \ \ Documents and Settings \ \ Rendszergazda \ \ Desktop \ \ SigmaS1.csv '
INTO TABLE `mydb`. "Mytable"
TERÜLETEK megszökött '\ \'
Megszűnik ","
Opcionálisan terület, amelyet "" "
LINES megszűnik "\ r \ n"
("Felhasználói`, `pwd`, `sno`, `amt`, `ActiveRec");
A szkript olvassa egy kiegészítő sort a csv fájlt. például ha a csv fájl már 25 nyilvántartások Ez azt mutatja, vannak 26 feljegyzések. Legyen szíves mondja meg, hol vagyok rosszul?
Nekem van hozzá, hogy ellenőrizze, ha az első sorban, és továbbra is hurok, ha az első sorban.
köszönöm
Mint Gary, szeretnék tudni, hogy felülírja a meglévő rekord, de azt fel kell frissíteni, nem törlöm az összes adatot a db. Sp valahol itt van:
if ($ addauto)
$ Query = "insert into $ databasetable értékek (",'$ linemysql');";
más
$ Query = "insert into $ databasetable értékek (" $ linemysql');";
Hogyan tudom megnézni, hogy ha a bejegyzés létezik, és majd frissítés helyett be?
Hogyan kihagyja az első sort / sor, ami egy fejléc a csv fájlt és helyezze be a többi adatot a db?
@ Gary
jól jönne egy @ mysql_query ("$ csonkítása databasetable"); után rögtön a @ mysql_select_db nyilatkozatot.
De légy óvatos, mert ez a művelet törölje ki az adatokat, és nem visszafordítható.
@ Kish
A jelenlegi kódot nem teszi lehetővé a böngészést a / feltölteni a fájlt.
Egyszerűen fel a CSV fájl ugyanabban a könyvtárban, mint a PHP szkript, és egyszerűen az $ csvfile változót meg kell egyeznie a fájl neve (elérési út nélkül)
Hi all,
Hogyan tartalmazzák ezeket a csv idézi a dátum "nap, hónap dátum, 2010" és az állam "prov, állam", hogy egy oszlop az én adatbázisban? Látom, sok példa van, de én nem tud kap ez-hoz dolgozik. bármilyen segítségre lenne jó.
ak, 10037591,1, "kedd március 9., 2010 15:55:16", 59,7151, -151.4434,2.7,75.90,32 "Kenai-félsziget, Alaszka"
thx
Köszönöm, ezt a kódot tényleg segített!
Hogyan tudom módosítani, hogy lehetővé tegye egy űrlap jelenik meg, amelyben a felhasználó böngészik, és kiválasztja a csv fájl importálható az asztalra?
És azt is, hogyan tudnám tenni úgy, hogy minden egyes alkalommal, amikor egy új fájlt be lenne felülírni, amit jelenleg tárolják az asztalra?
Sok köszönet
Ez nagyon hasznos kód nekem ..
köszönet.
Hogyan tud én kap a tallózás file beírása helyett a teljes elérési út ..
Kérem, segítsen ebben.
köszönöm
én nem értem, hogyan működik egy fájl ellenőrzése. jelenti az első böngészés és válasszon egy fájlt, majd be, ahol én kell módosítani
Hello,
Eszközölt néhány módosítást. Én. Txt fájl van 3 oszlop választja el "|" (pipe) karakter. A szkript jeleníti meg a fájl adatait, számít a sorokat, de nem adja meg az adatokat az adatbázisba. Véleménye?
$ Csvcontent = fread ($ file, $ méret);
fclose ($ file);
$ Con = mysql_connect @ ($ dbhost címen, $ dbusername, $ dbuserpassword) or die (mysql_error ());
@ Mysql_select_db ($ datasource) or die (mysql_error ());
$ Lineseparator = "\ n";
$ Fieldseparator = "|";
$ Sor = 0;
$ Lekérdezések = "";
$ Linearray = array ();
$ Count = 0;
foreach (split ($ lineseparator, $ csvcontent) as $ sor) {
$ Count = $ count + 1;
$ Sor + +;
$ Sor = trim ($ sor, "\ t");
$ Sor = str_replace ("\ r ","",$ sor);
/************************************
Ez a vonal sem kerüli el a különleges karaktert. eltávolítani, ha bejegyzések már megszökött a csv fájlban
************************************/
$ Sor = str_replace ("'"," \ '", $ line);
/*************************************/
$ Linearray = explode ($ fieldseparator, $ line);
$ Linemysql = implode (""",$ linearray);
if ($ addauto)
$ Query = "insert into MUTATÓK értékek (" $ count ',' $ linemysql');";
más
$ Query = "insert into MUTATÓK értékek (" $ linemysql');";
$ Lekérdezések .= $ query. "\ N";
@ Mysql_query ($ query) or die (mysql_error ());
echo "$ linemysql \ n";
}
Kiváló forgatókönyvet! Kellett egy kis ugrás kiindulópont a projekt, dolgozik, és ez volt a trükk.
Én észre valami furcsát azonban én módosította a forgatókönyvet, hogy működjenek együtt olyan formában, és én észre, hogy a keresést, az utolsó mező volt már buzi fel, mert az új vonal karakter (vagy \ r \ n, vagy mindkettő) még mindig kerülnek rögzítésre A MySQL adatbázis.
E célból, ha lecseréled:
$ Sor = str_replace ("\ r ","",$ sor);
a:
$ Sor = str_replace ('\ r',",$ sor);
ez fogja vissza attól, hogy egy problémát, mint az új vonal, van hozzá egy kis valamit, ami lehetővé teszi bedobására új rekordokat, de a frissítések már létező nyilvántartásokat, hogy ne a végén a dupla bejegyzéseket. A tetején az alábbi kódot, látni fogja, hol ugyanezt rögzíti a tényleges új vonal karakter.
$ Linemysql = implode ("','",$ linearray);
$ Newlinemysql = str_replace ('\ n',",$ linemysql);
if ($ addauto) {
switch ($ databasetable) {
esetében ("cím"):
$ Duplicatevals = "cím = VALUES (cím),
város = VALUES (város), az állami = VALUES (állam),
zip = VALUES (zip) ";
break;
esetében ("tulajdonos"):
$ Duplicatevals = "ownername = VALUES (ownername),
housetype = VALUES (housetype),
addresskey = VALUES (addresskey) ";
break;
}
$ Query = "insert into $ databasetable értékek (",'$ newlinemysql")
A DUPLICATE KEY UPDATE
$ Duplicatevals ";
Else {}
$ Query = "insert into $ databasetable értékek (" $ linemysql ')
A DUPLICATE KEY UPDATE
$ Duplicatevals ";
}
Is, az én formában tettem hozzá a tábla nevét és, hogy én akartam, hogy a tábla [boolean] "addauto" vagy csak egy input egy legördülő (vesszővel elválasztva), majd a megosztott az eredmény, a tetején a simplecsvimport script.
Végül meg kell emlékezni, hogy hozzanak indexek az adatbázisban a "ON DUPLICATE ..." dolgozni, automatikus lépésekben nem fognak működni ebben az esetben, így van, hogy egy másodlagos index az auto növekmény táblázatok, a táblázatok, hogy ne Nem automatikus növekedésnél és az egyedülálló területen dolgozni az egységes index, ha ez az útvonal szeretne menni.
Remélem, ez segít valaki!
Egészségére!
Meg kell letölteni az adatokat automatikusan egy távoli szerverre. Hogy egy CSV-fájlt, és azt kell csomagolja ki, és tárolja az adatokat egy mysql adatbázist, amit teremtett. Vannak több adatbázis. Az első szakaszban alább az egyik adatbázisok, hogy valaki segített nekem, és csodálatosan működik. Felállítottam egy cron job, és letölti automatikusan a tervezett időpontban. Azonban nekem van több adatbázist és vidám kap a mások munkáját.
EZT alábbi rész tökéletesen működik!!
--------------------------
#! / Bin / bash
deleteparam = "-delete-after";
# Deleteparam = "
# Könyvtár = '-könyvtár-prefix = / $ HOME / myfolder / myfolder /'
directory = "
# Userpwd = "-http-user = bla-http-password = bla"
toupper () {
echo $ 1 | tr "[: lower:]" "[: upper:]"
}
# If [-z "$ 1"], majd
# Echo használat: $ 0 table
# Exit
# Fi
ZIP = neve adatfájl távoli szerverre
ZIP = `toupper $ ZIP"
# A fájl a zip már eggyel kevesebb _
DATA = neve asztalomon az én MySQL adatbázis
DATA = `toupper $ DATA"
# Rm $ TABLE.csv.zip
# Rm $ DATA.csv
cd / $ HOME / myfolder / myfolder /
####### Kap a lakossági
wget " https://3pv.mlslirealtor.com/Data3pv/DownloadBRSaction.asp?user_code=XXXXXX&password=XXXXXXX&data_type=datazip "-O $ ZIP.csv.zip
sleep 10
####### Csomagolja ki
pwd
ls-la
unzip-o $ ZIP.csv.zip
sleep 10
####### Betöltéséhez
wget-verbose $ $ deleteparam könyvtárban $ userpwd https://mywebsite/myfolder/import.php?table = $ DATA
300 alvási
###### Törölje a fájlokat
rm $ ZIP.csv.zip
rm $ DATA.csv
sleep 10
_ ---------------------------
Mindez fenti munkák CSODÁLATOS
Ez az, amit Segítségre van szükségem
--------------------------
1. Szükségem van egy script, hogy adjunk a fenti fájlt, majd letölteni a képeket. Ha az alább látható szükségem van egy script, ami automatikusan lekérdezi az aktuális dátumot és az időt, hogy a szkript futott. Több szerver rendelkezik kép az elmúlt 7 nap, és folyamatosan frissül. Ha ez a szkript futott fogja letölteni az adatokat a táblázat, amit teremtett.
2. Aztán kell egy script, hogy lekérdezi a mysql adatbázist keres bejegyzéseket, a fényképek, majd letölteni a tényleges fényképeket közvetlenül a távoli szerverekre. Ez a csv fájl nem tölt le képeket, csak az adatok, hogy tudom használni, hogy futtasson egy szkriptet letölteni a képeket egy adott helyszínen. Lásd alább.
Az alábbiakban az utasításokat kaptam.
UTASÍTÁSOK
Fotó adat lekérése a HTTP. A fotók adatok frissülnek egyszer naponta, és letölthető egy CSV fájlba. Ezután írja meg a forgatókönyvet származó adatok felhasználásával a CSV-fájlt pont vissza a képek a mi képszerverre. Meg kell adnia egy értéket a lekérdezés string last_updt> "ÉÉÉÉHHNN HH: MM: SS" az URL-t, hogy visszatérjen az adatok. A mező last_updt az a dátum értéke az utolsó alkalom, hogy egy fénykép volt, megváltozott a lista.
Önnek ki kell cserélni a user_code és jelszót helyfoglalók (XXXX) a bejelentkezési adatokat szolgáltatott az Ön számára.
1. lépés: Ha le szeretnénk tölteni az elsődleges tőzsdei fotó adatokat CSV fájlba megy az URL-t.
https://remotewebserver/Data3pv/DownloadBRSaction.asp?user_code=XXX&password=XXXX&query_str=last_updt% 20>% 20'YYYYMMDD% 20HH: MM: SS "& data_type = FOTÓK
2. lépés: A fényképek táblázat adatait kell tölteni egy CSV formátumban.
3. lépés: Az Y zászlók és az ML szereplő szám adatok alkalmazását, akkor a linket vissza a képet helyeken.
Elsődleges kép elérési útja a következő:
https://remoteserver/folder/folder/folder/Last3DigistsofML # / # lista. jpg
Például, az elsődleges fotó tőzsdei száma 1899430 található
https://remoteserver/folder/folder/1/430/1899430.jpg
A további képes könyvtár útvonala felépítése a következő:
https://remoteserver/mlsphotos/full/PhotoPosition/Last3DigistsofML # / # tőzsdei _photoPosition.jpg
Például, A második fotó a jegyzékbe vétel száma 1899430 található
https://remoteserver/folder/folder/2/430/1899430_2.jpg
Szia, azt mondja nekem a rekord szám, de nem hozta meg az adatok az adatbázis
Remélem tud segíteni
Nathan
A parancs: vágjon táblanév.
akkor helyezze be a következő on-line 58:
@ Mysql_query ("$ csonkítása databasetable");
de ez nem visszafordítható! ezért legyünk óvatosak
hogyan lehet üres a tábla már ki van töltve behelyezése előtt az új fájlt?
vagy tudom frissíteni a már meglévő input?
TRUNCATE, UPDATE? hogyan csinál én kap ez a lekérdezés?
@ Andy Brotherton : Ez azt jelenti, hogy a lekérdezés próbál beszúrni egy rekordot, az oszlopok száma nem egyezik, hogy az adatbázis tábla.
1) Biztos benne, hogy a CSV fájl pontosan ugyanolyan oszlopok száma, mint a táblát az adatbázisban?
2) Azt a mező elválasztó ebben a CSV fájl valójában egy vessző? vagy ez egy lapon például, vagy más? Ha ez nem egy vessző, a változó értéke $ fieldseparator on line 12
3) A táblázat kell már létrehozta az adatbázist, mielőtt adatok betöltése bele. Biztos benne, hogy van ez?
Hello,
Én nagyon szeretem használni ezt a szkriptet, de nem vagyok biztos benne, mit csinálok rosszul. ÉN kap ugyanaz a probléma a fent említett adatok nem töltődik be a db. Úgy véli, a megfelelő sorok számát, de semmit sem mutat a db.
Megváltoztattam sor 88 @ mysql_query ($ query) or die (mysql_error ());
és ezt az üzenetet kapja "oszlop száma nem egyezik a szám a 1. sor"
@ Claus
Hello Claus.
Vajon a CSV valóban tartalmaznak egy rekordot?
Mivel a szkript elérte a színpad, ahol kiadja a rekordok száma, feltételezem, hogy nem sértette, amikor csatlakozik az adatbázishoz (56-57 sor), hogy nem a probléma.
Elképzelhető, hogy a lekérdezés beszúrni adatok nem.
Próbálja helyett line 88 a:
mysql_query ($ query) or die (mysql_error ());
és ellenőrizze, milyen hibát kapsz.
@ Okoth
Hello Okoth.
A legvalószínűbb, akkor lehet megszabadulni vonalak 33-54 és cseréld ki ennek az egyetlen sort:
$ Csvcontent = @ file_get_contents ("https://...");
cserélje ki a pontokat a megfelelő url (url közvetlen a CSV fájl)
@ Adrian
Hello Adrian.
Drupal, ahogy megjegyezte, az összetett táblázat struktúrákat. Attól függően, hogy milyen adatokat importálni kívánt, nagyon valószínű, hogy ezeket az adatokat kell bontani, több tábla, általában a közös kül-kulcs, mint például a csomópont id.
Sajnos, a fenti szkriptet nem segít erre.
Köszönjük, hogy a forgatókönyvet. Nagyon érthető.
Hogyan tudom módosítani ezt a szkriptet úgy, hogy lekérdezi és tárolja egy csv fájlt az interneten a MySQL?
Hi All
Én használ drupal építeni egy új honlap, a kihívás Én most az, hogy azt kell adatokat importálhat egy CSV file-ba egy mysql adatbázist, mely a megosztott táblákat, így bizonyos területek, amibe kell importálni csv adatok vannak különböző szakaszaiban ugyanazt az adatbázist fogja ez a szkript működik nekem? Ha nem tudja ezt a csv fájl importálható egy másik módszer?
Kérjük, tanácsot, köszönöm minden segítséget.
Üdvözlettel
Adrian
Üdv mindenkinek!
Úgy tűnik, hogy a forgatókönyvet dolgoznak ... szívesen fogadunk, hogy nem írja az adatokat a mysql ...
Mint Chris: A szkript kiegészíti, és még kiírja az eredménye számít, de nem érinti az adatbázis minden ... de azt mondja: talált összesen 1 nyilvántartások ebben a csv fájlt.
Mit tegyek rosszat (im egy noob a PHP és a MySQL)
Köszönöm
Claus
Szia Stanley, a probléma a aposztrófokat. A blog szoftvert itt átírja őket. Egyszerűen csak cserélje "és a" "
PS: az előző parancsot, hogy közvetlenül a teher egy csv fájlt az adatbázisba a mysql parancsot. Ez szép, de nem kapcsolódik a fenti szkriptet
azt mondja, hogy ez a teher az adatbázisban
betölteni az adatokat a helyi bemenet "PATH" táblába táblamezők megszűnik "," sorok megszűnik a "\ n";
tudom megváltoztatni az útvonalat, és az asztalra annak megy, de ez ad nekem egy hiba, hogy a rossz szintaxis-kód 1064
tud akárki adjon nekem néhány tanácsot, hogy mit kell csinálni
köszönöm
stan
Ami a probléma idézetek, akkor csak használd ezt:
$ Linearray = preg_split ("/,(?=(?:[^ \ "] * \" [^ \ "] * \ ")*(?![^ \"] * \ $ line "))/", );
Egészségére,
Gaz.
Kedves Chris,
Kérjük, cserélje ki:
@ Mysql_query ($ query);
a:
@ Mysql_query ($ query) or die (mysql_error ());
és hadd tudjam meg, milyen hibát ad neked
Hé Mindenki,
Szeretem ezt a forgatókönyvet, és ez jól működött, most hirtelen a forgatókönyvet szokás helyezze be a rekordok. A szkript kiegészíti, és még kiírja az eredménye számít, de nem érinti az adatbázis minden ...
Van ötleted?
Köszönöm
C
Szia Márk,
az első, ez utalva a kiválasztott fájl a $ kimeneti_fájl változó.
a második, ezt a fájlt kell írni. Feltételezem, hogy Linuxot használ, nem windows, mivel ez általában nem olyan kérdés, ablakok.
Linux-on, egyszerűen SSH a gépet, hogy változna a könyvtár, ahol a kimeneti fájl, és írja be: chmod 777 fájlnév
ahol a "fájlnév" a tényleges fájl neve.
Ha nincs SSH, FTP-kliens támogatja a több engedélyt változás. Ebből a célból, FTP meg azt a mappát, amely tartalmazza a kimeneti fájl, majd ezt a fájlt, és keresse meg e FTP-n keresztül a lehetőséget, hogy változást engedélyt. Állítsa be a 777, vagy a "olvasni, írni, végre" mindenki számára.
Hi all,
Köszönjük, hogy a forgatókönyvet. Én vagyok a noob, a PHP és a MySQL ezért nagyra értékelem, valami ilyesmi. Kaptam, mint amennyire generáló "A fájl nem írható, ellenőrizze az engedélyeket" hibaüzenet jelenik meg a böngészőmben. Tud valaki legyen szíves magyarázza a megjegyzést beállítást az engedélyt, hogy 777? Én használ egy Excel által generált. Csv fájl? Előre is köszönöm.
Én csak akkor kap az első sorban én CSV fájlba kell importálni az adatbázisba.
Itt egy példányát a naplófájlban:
insert into termelési értéke (", '2008-10-21 ', '50', '50 ', '50', 'ez az első sorban megjegyzi", "ez megjegyzések 2. vonal", "ez jegyzetek line 3 ", 0000-00-00 ', '0000-00-00', '0000-00-00 ', '456 Morningside Ave", "ste. 512", "Brooklyn", "New York", '10023', "Joe", "Ügyfél 1 ');
insert into termelési értéke (", '2008-10-09 ', '50', '50 ', '50', 'ez az első kiegészítő sort',",",' 2008/10/09", '2008 -10-14 ", 0000-00-00 ', '456 Morningside Ave", "ste. 512", "Brooklyn", "New York", '10023', 'Joe', 'Ügyfél 1');
insert into termelési értéke (", '2008-10-14 ', '25', '25 ', '25', 'MEGJEGYZÉSEK 1',",",' 2008/10/14", '2008-10-17 ',' NULL ', '555 valahol "," lakosztály 123', 'new york "," új y', '10001 ',' Joe ',' Név 1 ');
insert into termelési értéke (", '2008-10-16 ', '45', '45 ', '45',",",",' 2008/10/16", '2008-10-24', ' NULL',",",",",",' Tom',");
insert into termelési értéke (", '2008-10-01 ', '34', '34 ', '34',",",",' 2008/10/02", '2008-10-04', ' 2008/10/04',",",",",",' Steve',");
insert into termelési értéke (", '2008-10-17 ', '50', '50 ', '50', 'ez az első kiegészítő sort',",",' 2008/10/03", 0000 -00-00 ", 0000-00-00 ', '456 Morningside Ave", "ste. 512", "Brooklyn", "New York", '10023', 'Joe', 'Ügyfél 1');
insert into termelési értéke (", '2008-10-18 ', '25', '25 ', '25', 'MEGJEGYZÉSEK 1',",",' 2008/10/04", 0000-00-00 ", 0000-00-00 ', '555 valahol", "lakosztály 123', 'new york", "új y', '10001 ',' Joe ',' Név 1 ');
insert into termelési értéke (", '2008-10-19 ', '45', '45 ', '45',",",",' 2008/10/05", 0000-00-00', ' 0000-00-00',",",",",",' Tom',");
insert into termelési értéke (", '2008-10-20 ', '34', '34 ', '34', 'új bankjegyeket',",",' 2008/10/06", 0000-00-00 ", 0000-00-00',",",",",",' Steve',");
insert into termelési értéke (", '2008-10-21 ', '12', '12 ', '12', 'még újabb megjegyzi',",",' 2008/10/07", 0000-00- 00 ', '0000-00-00',",",",",",' jel',");
insert into termelési értéke (", '2008-10-22 ', '1', '0 ', '0',",",",' 2008/10/08", 0000-00-00', ' 0000-00-00',",",",",",",");
insert into termelési értéke (", '2008-10-23 ', 2", "0", '0',",",",' 2008/10/09 ", 0000-00-00', ' 0000-00-00',",",",",",",");
insert into termelési értéke (", '2008-10-24 ', '3', '0 ', '0',",",",' 2008/10/10", 0000-00-00', ' 0000-00-00',",",",",",",");
insert into termelési értéke (", '2008-10-15 ', '0', '0 ', '0', 'később',",",' 2008/10/11", 0000-00-00' , 0000-00-00',",",",",",",");
insert into termelési értéke (", '2008-10-16 ', '0', '0 ', '0', 'még később',",",' 2008/10/12", 0000-00-00 ", 0000-00-00',",",",",",",");
insert into termelési értéke (", '2008-10-17 ', '0', '0 ', '0', 'még később',",",' 2008/10/13", 0000-00-00 ", 0000-00-00',",",",",",");
insert into termelési értéke (", '2008-10-18 ', '0', '0 ', '0', 'még később',",",' 2008/10/14", 0000-00-00 ", 0000-00-00',",",",",",");
insert into termelési értéke (", '2008-10-19 ', '0', '0 ', '0', 'legújabb',",",' 0000-00-00", 0000-00-00' , 0000-00-00',",",",",",");
insert into termelési értéke (", '2008-10-01 ', '34', '34 ', '34', 'legújabb',",",' 2008/10/02", '2008-10-04 ", '2008-10-04',",",",",",' Bruce ');
illessze a termelési érték (",");
Azt mondja, hogy behelyezése 20 rekordból, de csak az első teszi, hogy az adatbázisba. Minden gondolat?
nem helyezze be az adatbázisba asztalhoz, ahol én akarom, hogy ki ..: (
Szép munka vezetője
Hi all,
Csináltam egy kis változás, hogy a kódot, így működik, mint egy CSV importőr, ahogy kell.
CSV-s első sorban meg kell tartani az oszlopnevek importálni kívánt, ezért módosítsa a foreach ciklus:
foreach (split ($ lineseparator, $ csvcontent) as $ sor) {
$ Sor + +;
$ Sor = trim ($ sor, "\ t");
$ Sor = str_replace ("\ r ","",$ sor);
/ * Get oszlopnevek első sorban a CSV * /
if ($ sor == 1) {
$ Oszlop = explode ($ fieldseparator, $ line);
$ Columnsql = implode (",",$ oszlop);
echo $ columnsql;
folytatni;
}
/************************************
Ez a vonal sem kerüli el a különleges karaktert. eltávolítani, ha bejegyzések már megszökött a csv fájlban
************************************/
$ Sor = str_replace ("'"," \ '", $ line);
/*************************************/
$ Linearray = explode ($ fieldseparator, $ line);
$ Linemysql = implode ("','",$ linearray);
if ($ addauto)
$ Query = "insert into $ databasetable ($ columnsql) értékek (" $ linemysql');";
más
$ Query = "insert into $ databasetable ($ columnsql) értékek (" $ linemysql');";
$ Lekérdezések .= $ query. "\ N";
@ Mysql_query ($ query);
}
Mekkora az a fájl akarsz importálni?
minden esetben, próbálja ki a következő sort a kezdeti nyitó címkék:
set_time_limit (300);
Ez adja a forgatókönyvet, legfeljebb 5 perc (300 másodperc) a végrehajtási idő.
Cseréje 300, 0 lehetővé teszi számára, hogy annyi időt, mint szükséges.
Sziasztok, szép forgatókönyvet köszönöm. Amikor fut kapom:
Végzetes hiba: maximális átfutási idő 30 másodperc túllépése on line 63
Van valami, amit tehetek, hogy ez a hiba?
Robbie, köszönöm neked mellett, elég szívesen. Sajnos, ez nem működik, rögtön, amikor másolja. Azt hiszem, valami hiányzik, mert a kód oszlik meg a két álláshely.
Meg tudná ellenőrizni a kódot, mint látható itt? Van valami hiányzik?
Brad, ha már letöltötte korábban, mint a múlt héten, cserélje ki a "<?" tetején a "<? php" (eltávolítás tér)
én kap az első annyira, hogy vágja le, a többi csak a kódot a böngésző. Tudom, hogy php nem működik, mert a többi a site működik.
Én frissíteni PHP5 számít ez?
)
; / / Kihagyja, mert tartozik a rossz tömb elemeit
más
$ Newarray [$ y] = str_replace ('"',",$ linearray [$ y]);
$ Linearray = array_values ($ newarray); / / vissza a kulcsokat az új tömb
$ X + +;
}
}
}
Nos, itt van a javítás korábbi véleményét:
beilleszteni ezt a között:
$ Linearray = explode ($ fieldseparator, $ line);
... Be az alábbi kódrészletet ....
$ Linemysql = implode ("','",$ linearray);
Megkeresi és megtartja az összes "cuccok, További dolgok" előtt együtt imploding meg.
$ A = "";
$ B = "";
$ Qoutecount = 0;
for ($ x = 0; $ x -1) {
$ Qoutecount + +;
if ($ qoutecount == 1)
$ A = $ x; / / tároljuk az első fokon
elseif ($ qoutecount == 2) {
$ Quotecount = 0;
$ B = $ x; / / tároljuk másodfokon
/ / Hogy csinálja ... össze az összes elemet a $ a és $ b $ a-ba, és figyelmen kívül hagyja elemek után semmilyen $ a és $ b az új tömb;
$ Newa = ""; / / inicializálni új string.
for ($ z = $ a, $ z $ a & & $ y
Nem veszi figyelembe az olyan területeken, mint ezt a sort:
Fname, lname, "Company, Inc, város, állam, Zip
Vállalat és Kft. kap osztva két különböző oszlopban.
Rengaraj,
A csv fájlt kell az ugyanazon a helyen, mint a PHP fájlt.
Is, akkor nem igazán van, hogy ugyanazzal a csv fájl nevét.
bbqrest.csv egy példa, cserélje ki a fájl nevét a saját.
Tud egy válasz gyors nekem van egy csv fájl bbqrest.csv a helyes útvonalat (root) ..
Én szerzés ez hiba A fájl nem található. Győződjön meg róla, hogy meghatározta a helyes útvonalat.
lenne egy jó ötlet, hogy hozzá ne fejlécek a csv attól, hogy nyújtottak be az adatbázisba. Vagy hogy egy scriptet, hogy húzza ki az első sort, és létrehoz egy db használja ezeket az értékeket, mint az oszlop nevét.
Steve,
Ön hozná ezt a forgatókönyvet egy webről elérhető mappa, megváltoztatása után a változók, amelyeket meg kell változtatni. Olvassa el a megjegyzéseket a forgatókönyvet, hogy megtudja, mit kell adni. Ezután hívja a forgatókönyvet fel egy web böngésző, mint például:
https://www.example.com/path-to-script/simplescvimport.php
Összesen újszülött - tépi hajam próbál importálni az Excel csv be phpMyAdmin (Mac). Szeretnék tudni, pontosan hol és mit csináljak ezzel php scriptet ...?
Wow, az jó ... volt ötlete után olvassa el a kódoló ... köszönöm a sok
Sziasztok, egy kis módosítás az automatikus növelésének értékek az 1. oszlopban (id mező)
lásd a $ count változó.
Ola, Enrico.
/ / $ Con = mysql_connect @ ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
/ / @ Mysql_select_db ($ adatbázisnév) or die (mysql_error ());
$ Sor = 0;
$ Lekérdezések = "";
$ Linearray = array ();
$ Count = 0;
foreach (split ($ lineseparator, $ csvcontent) as $ sor) {
$ Count = $ count + 1;
$ Sor + +;
$ Sor = trim ($ sor, "\ t");
$ Sor = str_replace ("'"," \ '", $ line);
$ Linearray = explode ($ fieldseparator, $ line);
$ Linemysql = implode ("','",$ linearray);
$ Query = "INSERT INTO` a `VALUES db asztal ('$ count', '$ linemysql');";
$ Lekérdezések .= $ query. "\ N";
@ Mysql_query ($ query);
}
/ / @ Mysql_close ($ con);
Nagyon köszönöm ezt a mentett sok idő! Szép forgatókönyvet.
ÉN általában használ phpmyadmin, de igaz, ha az egyik nem van telepítve, és nem shell hozzáférés (mint a legtöbb a megosztott tárhely szolgáltatók), ez nagyon jól jön.
Nagyon hasznos, köszönöm.