Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Dane z pliku txt do bazy danych
brzanek
post
Post #1





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Witam jak dane z pliku txt
"249180120","SKOCZÓW","1950","11","29",.4,"","",0,"8",0,"8","","8","","8"
zapisać do bazy danych?
Mam coś takiego
  1. <?php
  2. $mysql_host = 'localhost';
  3. $mysql_login = 'login';
  4. $mysql_haslo = 'pass';
  5. $mysql_baza = 'nazwa_bazy';
  6.  
  7. // połączenie z bazą danych
  8. $mysqli = new mysqli($mysql_host,$mysql_login,$mysql_haslo,$mysql_baza);
  9. //$mysqli->set_charset("utf8");
  10. if ( mysqli_connect_errno() ) {
  11. echo 'Błąd bazy danych';
  12. }
  13. //
  14. $plik = file('plik.txt');
  15.  
  16. $mysqli->set_charset("utf8"); {
  17. foreach($plik as $linia) {
  18. $i++;
  19. list($nazwastacji, $miasto, $rok, $miesiac, $dzien, $suma_dobowa_opadu, $j, $rodzaj_opadu, $wysokosc_pokrywy_snieznej_cm, $m, $wysokosc_swiezospalego_sniegu, $o, $gatunek_sniegu, $r, $rodzaj_pokrywy_snieznej, $s) = explode(',', trim($linia));
  20. $result = $mysqli->query("
  21. INSERT INTO opad_dobowy
  22. SET nazwastacji='$nazwastacji', miasto='$miasto', rok='$rok', miesiac='$miesiac', dzien='$dzien', suma_dobowa_opadu='$suma_dobowa_opadu', j='$j', rodzaj_opadu='$rodzaj_opadu', wysokosc_pokrywy_snieznej_cm='$wysokosc_pokrywy_snieznej_cm', m='$m', wysokosc_swiezospalego_sniegu='$wysokosc_swiezospalego_sniegu', o='$o', gatunek_sniegu='$gatunek_sniegu', r='$r', rodzaj_pokrywy_snieznej='$rodzaj_pokrywy_snieznej', s='$s'
  23. ");
  24. }
  25. }
  26. ?>

Dane zapisują się do bazy ale razem z cudzysłowami "
(IMG:https://i.postimg.cc/63R8TyhZ/tytytytytytt.png)
Jak mogę się tego pozbyć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




@Neutral nie, on tak wklada do bazy, widac ladnie w kodzie ze wklada explode po przecinku
explode(',', trim($linia));
wiec ze wszystkim.

@brzanek, skoro to CSV to uzyj dedykowanych funkcji do odczytu csv a problem zniknie. Oczywiscie mozesz recznie usuwac te cudzyslowia ale nie na tym to polega...

https://www.php.net/manual/en/function.fgetcsv.php

ps: swoja droga jak jakies pole jest ewidentnie liczba to bys mogl w bazie danych robic je jako typ liczbowy a nie tekstowy.

tak samo data to powinno byc jedno pole DATE a nie 3 pola tekstowe

No i skoro uzywasz mysqli to zainteresuj sie bindowaniem bo serce sie kraja patrzac jak ty dane do bazy wkladasz a programujesz juz pare lat
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 20:05