Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL]Cudzysłów w BLOB a php, problemy z kodowaniem
pi_wo
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 6
Dołączył: 18.03.2009

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


  1. <?php
  2. $check_query = 'SELECT * FROM tabela WHERE kolumna1=\"'.iconv('windows-1250','UTF-8', trim($row[0])).'\" AND kolumna2=\"'.iconv('windows-1250','UTF-8', trim($row[1])).'\"';
  3.  
  4. $check_result = mysql_query($check_query);
  5.                        
  6. if($check_result){
  7.                        
  8.       if(mysql_num_rows($check_result)<1){
  9. $row = explode('=',$file_array[$i]);
  10.  
  11. $query = &#092;"INSERT INTO tabela(kolumna1,kolumna2) VALUES('\".iconv(\"windows-1250\",\"UTF-8\", trim($row[0])).\"','\".iconv(\"windows-1250\",\"UTF-8\", trim($row[1])).\"';
  12. mysql_query($query);
  13.  
  14.       }
  15.  
  16. }
  17. ?>


Jest to fragment zawiłej pętli importującej dane z pliku do tabeli. kolumna 1 i 2 to pola BLOB (musi być BLOB). Dane przed wpisaniem do tabeli konwertowane są do UTF-8. Przed każdym wpisem skrypt sprawdza czy podany rekord już nie istnieje w bazie...

Jaki mam problem? W wierszach, które importuje, czasami występuje cudzysłów " . O ile w przypadku INSERT'a nie ma problemu z wpisaniem " cudzysłowia do tabeli i późniejszym wyświetleniem go to np.

  1. SELECT * FROM tabela WHERE kolumna1 LIKE '%"%';


lub jak w moim przypadku:


  1. <?php
  2. $query = 'SELECT * FROM tabela WHERE kolumna1=\"'.$string_zawierający_cudzysłów.'\"';
  3. ?>



nie działa już poprawnie. Dlatego stosowane przeze mnie sprawdzanie czy rekord już nie istnieje w tabeli ($check_result) nie pozwala na wpisanie rekordu. Widzicie gdzieś błąd? Ja już za długo patrzę na ten kod...

Ten post edytował pi_wo 3.04.2009, 11:51:14
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 22.08.2025 - 04:32