Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Znaki
Forum PHP.pl > Forum > Przedszkole
dareksbs
Witam,

Mam problem z dodaniem kodu HTML typu '" do bazy danych, za każdym razem kiedy wpiszę je do formularza następuje błąd dodawania danych do bazy danych

Błąd :
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 '"'

Tak wygląda moje połączenie oraz dodawanie danych do bazy
  1. $connect = @mysql_connect (test,test,test) or die ("ERROR 0001");
  2. mysql_select_db('test') or die ("ERROR 0002");
  3. $query = "INSERT INTO dane VALUES ('', '".$_POST['dane1']."', '".$_POST['dane2']."', '".$_POST['dane3']."'')";
  4. $makeit = mysql_query ($query) or die(mysql_error());
  5. echo"<h1>Informacje dodane</h1>";



Kodu HTML nie będę dodawał bo to zwykły formularz.

Ma ktoś jakiś pomysł jak temu zapobiec
tab
uzyj funkcji addslashes na uploadowanych plikach, a przy ich odczytywaniu uzyj stripslashes
Spawnm
  1. '".$_POST['dane3']."'')";

Nie za dużo ' przed nawiasem?

@Tab - tak sie tego nie robi.
Poczytaj o mysql_real_escape_string()
dareksbs
Czyli przykładowo jak bym chciał użyć mysql_real_escape_string to muszę wszystkie posty zamienić na zmienne z tą funkcją coś w stylu

$imie = mysql_real_escape_string($imie),
$nazwisko = mysql_real_escape_string($nazwisko),
$adres = mysql_real_escape_string($adres),
$ksywa = mysql_real_escape_string($ksywa));

i dopiero te zmienne wysyłać na mysql
tab
tak dokładnie
dareksbs
Teraz wysyła pusty formularz...

Zrobiłem coś takiego :

  1. $connect = @mysql_connect (test,test,test) or die ("ERROR 0001");
  2. mysql_select_db('test') or die ("ERROR 0002");
  3. $_POST['dane1'] = mysql_real_escape_string($dane1);
  4. $_POST['dane2'] = mysql_real_escape_string($dane2);
  5. $_POST['dane3'] = mysql_real_escape_string($dane3);
  6. $query = "INSERT INTO dane VALUES ('', '".$dane1."', '".$dane2."', '".$dane3."')";
  7. $makeit = mysql_query ($query) or die(mysql_error());
  8. echo"<h1>Informacje dodane</h1>";
b4rt3kk
Cytat(dareksbs @ 6.11.2012, 00:14:12 ) *
Teraz wysyła pusty formularz...

Zrobiłem coś takiego :

  1. $connect = @mysql_connect (test,test,test) or die ("ERROR 0001");
  2. mysql_select_db('test') or die ("ERROR 0002");
  3. $_POST['dane1'] = mysql_real_escape_string($dane1);
  4. $_POST['dane2'] = mysql_real_escape_string($dane2);
  5. $_POST['dane3'] = mysql_real_escape_string($dane3);
  6. $query = "INSERT INTO dane VALUES ('', '".$dane1."', '".$dane2."', '".$dane3."')";
  7. $makeit = mysql_query ($query) or die(mysql_error());
  8. echo"<h1>Informacje dodane</h1>";


No i nic dziwnego. Zauważ, że przypisujesz wartości do $_POST, a do bazy wpisujesz $dane1, $dane2, $dane3.

  1. $connect = @mysql_connect (test,test,test) or die ("ERROR 0001");
  2. mysql_select_db('test') or die ("ERROR 0002");
  3. $dane1 = mysql_real_escape_string($_POST['dane1']);
  4. $dane2 = mysql_real_escape_string($_POST['dane2']);
  5. $dane3 = mysql_real_escape_string($_POST['dane3']);
  6. $query = "INSERT INTO dane VALUES ('', '".$dane1."', '".$dane2."', '".$dane3."')";
  7. $makeit = mysql_query ($query) or die(mysql_error());
  8. echo"<h1>Informacje dodane</h1>";


Powyższe powinno załatwić sprawę.
dareksbs
Cytat(b4rt3kk @ 6.11.2012, 01:29:15 ) *
No i nic dziwnego. Zauważ, że przypisujesz wartości do $_POST, a do bazy wpisujesz $dane1, $dane2, $dane3.

  1. $connect = @mysql_connect (test,test,test) or die ("ERROR 0001");
  2. mysql_select_db('test') or die ("ERROR 0002");
  3. $dane1 = mysql_real_escape_string($_POST['dane1']);
  4. $dane2 = mysql_real_escape_string($_POST['dane2']);
  5. $dane3 = mysql_real_escape_string($_POST['dane3']);
  6. $query = "INSERT INTO dane VALUES ('', '".$dane1."', '".$dane2."', '".$dane3."')";
  7. $makeit = mysql_query ($query) or die(mysql_error());
  8. echo"<h1>Informacje dodane</h1>";


Powyższe powinno załatwić sprawę.


;O hahaha okej, ja już będę szedł spać bo nie myślę ! dzięki za pomoc !
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.