Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd w zapytaniu ?
Forum PHP.pl > Forum > Bazy danych > MySQL
SpiJay
Witajcie !

Mam taki kod PHP:
  1. if($_POST['zapisz'] != '') {
  2.  
  3. // Nazwa
  4. $nazwa = stripslashes($_POST['n_w']);
  5. $nazwa = htmlspecialchars(trim($nazwa));
  6. if ($nazwa == '' AND $komunikat == '') {
  7. $komunikat = 'Musisz podać nazwę wina.';
  8. }
  9.  
  10. // rodzaj
  11. $_POST['k_w'] = preg_replace("[ ]", "", $_POST['k_w']); // pozbywamy się spacji
  12. $rodzaj = stripslashes($_POST['k_w']);
  13. $rodzaj = htmlspecialchars(trim($rodzaj));
  14. if ($rodzaj == '' AND $komunikat == '') {
  15. $komunikat = 'Musisz podać rodzaj wina.';
  16. }
  17. // smak
  18. $_POST['s_w'] = preg_replace("[ ]", "", $_POST['s_w']); // pozbywamy się spacji
  19. $smak = stripslashes($_POST['s_w']);
  20. $smak = htmlspecialchars(trim($smak));
  21. if ($smak == '' AND $komunikat == '') {
  22. $komunikat = 'Musisz podać smak wina.';
  23. }
  24.  
  25. // region
  26. $region = stripslashes($_POST['rg_w']);
  27. $region = htmlspecialchars(trim($region));
  28. if ($region == '' AND $komunikat == '') {
  29. $komunikat = 'Musisz podać region wina.';
  30. }
  31.  
  32. // winiarnia
  33. $winiarnia = stripslashes($_POST['wi_w']);
  34. $winiarnia = htmlspecialchars(trim($winiarnia));
  35. if ($winiarnia == '' AND $komunikat == '') {
  36. $komunikat = 'Musisz podać winiarnie.';
  37. }
  38.  
  39. // szczep
  40. $szczep = stripslashes($_POST['sz_w']);
  41. $szczep = htmlspecialchars(trim($szczep));
  42. if ($szczep == '' AND $komunikat == '') {
  43. $komunikat = 'Musisz szczep wina.';
  44. }
  45.  
  46. // rocznik
  47. $_POST['r_w'] = preg_replace("[ ]", "", $_POST['r_w']); // pozbywamy się spacji
  48. $rocznik = stripslashes($_POST['r_w']);
  49. $rocznik = htmlspecialchars(trim($rocznik));
  50. if (strlen($rocznik) == '4') {
  51. if ($rocznik == '' AND $komunikat == '') {
  52. $komunikat = 'Musisz podać rocznik wina.';
  53. }
  54. } else {
  55. $komunikat = 'Musisz podać 4 cyfrowy rocznik wina';
  56. }
  57.  
  58. // ilosc
  59. $_POST['i_w'] = preg_replace("[ ]", "", $_POST['i_w']); // pozbywamy się spacji
  60. $ilosc = stripslashes($_POST['i_w']);
  61. $ilosc = htmlspecialchars(trim($ilosc));
  62. if ($ilosc == '' AND $komunikat == '') {
  63. $komunikat = 'Musisz podać ilość‡ butelek wina.';
  64. }
  65.  
  66. // hurtowa
  67. $_POST['chu_w'] = preg_replace("[ ]", "", $_POST['chu_w']); // pozbywamy się spacji
  68. $hurtowa = stripslashes($_POST['chu_w']);
  69. $hurtowa = htmlspecialchars(trim($hurtowa));
  70. if ($hurtowa == '' AND $komunikat == '') {
  71. $komunikat = 'Musisz poda㇠cenę hurtową wina.';
  72. }
  73.  
  74. // handlowa
  75. $_POST['cha_w'] = preg_replace("[ ]", "", $_POST['cha_w']); // pozbywamy się spacji
  76. $handlowa = stripslashes($_POST['cha_w']);
  77. $handlowa = htmlspecialchars(trim($handlowa));
  78. if ($handlowa == '' AND $komunikat == '') {
  79. $komunikat = 'Musisz poda㇠cenę handlową wina.';
  80. }
  81.  
  82. // kontynent
  83. $_POST['ko_w'] = preg_replace("[ ]", "", $_POST['ko_w']); // pozbywamy się spacji
  84. $kontynent = stripslashes($_POST['ko_w']);
  85. $kontynent = htmlspecialchars(trim($kontynent));
  86. if ($kontynent == '' AND $komunikat == '') {
  87. $komunikat = 'Musisz podać kontynent wina.';
  88. }
  89.  
  90. // pojemnosc
  91. $_POST['po_w'] = preg_replace("[ ]", "", $_POST['po_w']); // pozbywamy się spacji
  92. $pojemnosc = stripslashes($_POST['po_w']);
  93. $pojemnosc = htmlspecialchars(trim($pojemnosc));
  94. if ($pojemnosc == '' AND $komunikat == '') {
  95. $komunikat = 'Musisz podać pojemność butelki wina.';
  96. }
  97.  
  98. // kraj
  99. $_POST['kr_w'] = preg_replace("[ ]", "", $_POST['kr_w']); // pozbywamy się spacji
  100. $kraj = stripslashes($_POST['kr_w']);
  101. $kraj = htmlspecialchars(trim($kraj));
  102. if ($kraj == '' AND $komunikat == '') {
  103. $komunikat = 'Musisz podać kraj wina.';
  104. }
  105.  
  106. // opis
  107. $opis = stripslashes($_POST['o_w']);
  108. $opis = htmlspecialchars(trim($opis));
  109. if ($opis == '' AND $komunikat == '') {
  110. $komunikat = 'Musisz podać opis wina.';
  111. }
  112.  
  113. if ($_FILES['m_w']['size'] <= $MAXIMUM_FILESIZE) {
  114.  
  115. if (preg_match($rEFileTypes, strrchr($safe_filename_mini, '.'))) {
  116.  
  117. if (is_uploaded_file($plik_tmp_mini)) {
  118.  
  119. move_uploaded_file($plik_tmp_mini, $dir_base_mini . $safe_filename_hash_mini . $rozszerzenie_mini);
  120.  
  121. $zdj_mini = $dir_base_mini . $safe_filename_hash_mini . $rozszerzenie_mini;
  122.  
  123. $komunikat_mini = "Miniaturka został€ša wysł€šana na serwer.";
  124.  
  125. $dostep_mini = true;
  126. }
  127.  
  128. } else {
  129.  
  130. $komunikat_mini = "Wystąpił€š problem z załadowaniem obrazka na serwer.";
  131. $komunikat = "Musisz wybrać obrazki do załadowania na serwer.";
  132.  
  133. }
  134. }
  135.  
  136. if($_FILES['d_w']['size'] <= $MAXIMUM_FILESIZE) {
  137.  
  138. if (preg_match($rEFileTypes, strrchr($safe_filename_duzy, '.'))) {
  139.  
  140. if (is_uploaded_file($plik_tmp_duzy)) {
  141.  
  142. move_uploaded_file($plik_tmp_duzy, $dir_base_duzy . $safe_filename_hash_duzy . $rozszerzenie_duzy);
  143.  
  144. $zdj_duze = $dir_base_duzy . $safe_filename_hash_duzy . $rozszerzenie_duzy;
  145.  
  146. $komunikat_duzy = "Zdjęcie został€šo wysł€šane na serwer.";
  147.  
  148. $dostep_duzy = true;
  149. }
  150.  
  151. } else {
  152.  
  153. $komunikat_duzy = "Nie zał€šadowano dużego obrazka wina.";
  154. $komunikat = "Musisz wybrać obrazki do załadowania na serwer.";
  155.  
  156. }
  157.  
  158. }
  159.  
  160. if($komunikat == '') {
  161.  
  162. if($dostep_duzy == true AND $dostep_mini == true) {
  163.  
  164. mysql_query("INSERT INTO `wina` (`id`, `nazwa`, `opis`, `smak`, `rodzaj`, `rocznik`, `ilosc`, `cena_hurtowa`, `cena_handlowa`, `kontynent`, `kraj`, `region`, `winiarnia`, `pojemnosc`, `szczep`) VALUES ('', '$nazwa', '$opis', '$smak', '$rodzaj', '$rocznik', '$ilosc', '$handlowa', '$hurtowa', '$kontynent', '$kraj', '$region', '$winiarnia', '$pojemnosc', '$szczep')") or print mysql_error();
  165. $komunikat_ok = "Dodano nowe wino do sklepu !";
  166.  
  167. }
  168.  
  169. }
  170.  
  171. }


W momencie wypełnienia wszystkich pól poprawnie i przy próbie wpisania nazwy z " ' " -> pojedyńczym apostrofem, wywala mi taki błąd...
Cytat(SQL)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'asd', 'Opis wina + jakieś znaki : +":<>?}{!@#$%&^&**)', 'w' at line 1


Co robię nie tak ? sad.gif
nospor
Zamiast htmlspecialchars zapoznaj się z czymś takim jak mysql_real_escape_string() - to tego masz używać wkładając wartosci tekstowe do bazy
wujek2009
Sądzę, że przepisane tego na PDO ułatwi Ci pracę.
http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO
Zobacz jak się binduje wartości http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO#Podpinanie
(tam jest niżej przykład użycia "bindValue")
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.