Webstatt.org - Community seit 2006 - 2012 (2024?)

Query mag mich nicht

Avatar user-317
16.03.2006 22:35

$sql   = 'UPDATE `ptb_user` SET userkey = "", useractivated = "1" WHERE userkey = "' . $_GET['key'] . '"';

Dieses Query mag mich nicht traurig

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 userkey = "e4a5c5b4d561452c0a92c01a1e717298"' at line 1

Ich hab grad aber brutal rote Tomaten auf den Augen. Help :/

Avatar user-255
16.03.2006 23:09

Wie schon so oft: Bezeichner in Backticks, Werte in (einfache) Hochkommas. Ist halt einfach so. zwinkern

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-317
17.03.2006 08:58

Das ganze funktioniert solange ich die Variable nicht einsetze, sprich manuell den Wert eintrage.

Avatar user-166
17.03.2006 16:27

Dein Query ist anfällig für SQL Injections. Nimm lieber mal diesen, damit sollte dann auch dein Problem beseitigt sein.

$sql = 'UPDATE `ptb_user` SET userkey = "", useractivated = "1" WHERE userkey = "' . mysql_real_escape_string($_GET['key']).'"'; 

[ » HesaSys - ein freies, schnelles und flexibles WCMS ]
Avatar user-182
17.03.2006 17:07

warum? vll macht er ja schon ein $_GET['key'] = addslashes($_GET['key']) oder sowas davor frech

Seid ihr auch schon wix'r? xD
Avatar user-317
18.03.2006 09:24

Danke, aber ich habe eine komplette Absicherungsroutine die automatisch alle $_POST, $_GET, $_SESSION und $_COOKIE Variablen durchläuft. Bringt mich aber so oder so noch nicht weiter :/

Avatar user-255
18.03.2006 09:50

Komisch Ding!
Lass dir doch mal $sql ausgeben, irgendwas muss ja faul sein an der Abfrage..

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-317
18.03.2006 10:33

Ich komm grad nicht dazu, aber ich editiers später hier in den Post.

Avatar user-153
18.03.2006 18:15

Machs mal so :->

$sql   = "UPDATE `ptb_user` SET userkey='',useractivated='1' WHERE userkey = '".$_GET['key']."'"; 

ÖSTERREICH
Avatar user-118
18.03.2006 22:05

Das Thema, weswegen ich hier eig. gepostet habe , habe ich gerade selber gelöst.
Nun ist aber ein neues aufgetaucht.

   if ($serie != $_GET['sDirpath'])
{
$sql="INSERT INTO $tablegalleryklicks (serie, zeit, ip, klicks) VALUES ('".$_GET['sDirpath']."', '".$zeit."', '".$ip."', klicks+1)";
$senden=mysql_query($sql) or die(mysql_error());
}
else
{
$sqlupdate = "UPDATE $tablegalleryklicks SET klicks = klicks+1 AND ip = '$ip' AND zeit = '$zeit' WHERE serie = '".$_GET['sDirpath']."'";
$senden2=mysql_query($sqlupdate) or die(mysql_error());
}


die klicks werden nicht "hochgezählt" ... es bleib immer null.... d.h. das "+1" funzt irgendwie nicht.

Was ist da falsch ?

mfg Alex

Ich brauche keine Signatur
Avatar user-255
18.03.2006 22:40

SET funzt doch so:
> update xy set a=1, b=2, c=3

Ansonsten kannst du mit mysql_affected_rows() prüfen, ob der Datensatz überhaupt gefunden wurde.

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-118
18.03.2006 22:43

Original von user-255
SET funzt doch so:
> update xy set a=1, b=2, c=3

Du bist ein Genie... daran lags

vielen dank

mfg Alex

Ich brauche keine Signatur