Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z aktualizacją danych PHP You have an error in your SQL syntax;
Forum PHP.pl > Forum > PHP > Object-oriented programming
18Pawel18
Wyświetla komunikat:

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 '' WHERE username = 'paul' AND password = (PASSWORD('haslo'))' at line 1

Myślę, że chodzi o jakieś kropki lub przecinki.

Kod PHP:

<?php

if(isset($_POST['submit']) && $_POST['submit'] == "Uaktualnij")
{
$query_update = "UPDATE user_info SET " .
"email = '" . $_POST['email'] . "', " .
"city = '" . $_POST['city'] . "', " .
"state = '" . $_POST['state'] . "', " .
"' WHERE username = '" . $_SESSION['user_logged'] .
"' AND password = (PASSWORD('" .
$_SESSION['user_password'] . "'))";
$result_update = mysql_query($query_update)
or die(mysql_error());

$query = "SELECT * FROM user_info " .
"WHERE username = '" . $SESSION['user_logged'] ."' " .
"AND password = (PASSWORD('" .
$_SESSION['user_password'] . "'))";
$result = mysql_query($query)
or die(mysql_error());

$row = mysql_fetch_array($result);

?>

d3ut3r
Do wstawiania kodu na forum są znaczniki smile.gif

Na pierwszy rzut oka to w update masz za dużo przecinków. Poza tym, zrób sobie echo zapytania wklej do phpmyadmin i poprawiaj tak długo aż będzie działać, później z powrotem wrzuć do pliku .php. Trochę cierpliwości i sam naprawisz błąd.



doman78
Ewentualnie zobacz czy w zmiennych POST nie ma znaków takich jak apostrofy.

Użyj funkcji addslashes lub mysql_escape_string.
thek
@doman78: Nie podawaj takich funkcji do zabezpieczania, bo można ominąć je i sql-injection nadal przeprowadzić. Prepared statements, PDO. W tę stronę idź jeśli chcesz zabezpieczać skrypt.
franki01
Kod
"state = '" . $_POST['state'] . "', " .
"' WHERE username = '" . $_SESSION['user_logged'] .

Coś Wam umknęło. Toć przez WHERE jest przecinek i jeden apostrof.
Te dwie linijki powinny być zastąpione przez:
Kod
"state = '" . $_POST['state'] . "' " .
" WHERE username = '" . $_SESSION['user_logged'] .
irmidjusz
czy ja dobrze widzę, że 18Pawel18 zarejestrował się na forum 1.02.2010, a dzisiaj napisał pierwszego posta? biggrin.gif
webdice
Zamykam, autora proszę o PW z informacją czym kierował się umieszczając temat w dziale OOP.

Cytat(irmidjusz @ 16.07.2012, 10:55:04 ) *
czy ja dobrze widzę, że 18Pawel18 zarejestrował się na forum 1.02.2010, a dzisiaj napisał pierwszego posta? biggrin.gif


Co to ma do tematu?
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.