webForumDet fria alternativet

SQL Error

4 svar · 489 visningar · startad av Guldstrand

GuldstrandMedlem sedan juli 20041 274 inlägg
#1
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 ' '2008-06-11 17:48:49', admin kunde inte godkänna den inskickade länken., 0' at line 1

Vad är det för fel på denna kod? *måste vara blind* :x

if($action==1) {
 
                $query="UPDATE lankar SET status='confirmed', ".sqlesc($modcomment)." WHERE status='pending' AND (". $uids. ")";
		  $type='confirmed';
                $modcomment = gmdate("Y-m-d") . " - Tack! Ditt länkförslag bekräftades av $CURUSER[username].\n". $_POST["modcomment"];
                $msg="Tack för ditt länkförlag! $CURUSER[username] har nu godkänt den inskickade länken.";

	} else {

              $query="DELETE FROM lankar WHERE status='pending' AND (". $uids .")";
		$type='deleted';
              $msg=' '.$CURUSER[username].' kunde inte godkänna den inskickade länken.';
	} 

$dt = sqlesc(get_date_time(gmtime() - $secs));
@mysql_query("INSERT INTO messages (sender, receiver, added, msg, poster) VALUES(0, $_POST[userid], $dt, $msg, 0)") or sqlerr(__FILE__, __LINE__);
Peter SMedlem sedan dec. 20025 484 inlägg
#2

Skriv ut SQL-frågan: echo "insert into...";

GuldstrandMedlem sedan juli 20041 274 inlägg
#3

Peter S skrev:

Skriv ut SQL-frågan: echo "insert into...";

Hmm, ok...

Körde:

echo "INSERT INTO messages (sender, receiver, added, msg, poster) VALUES(0, $_POST[userid], $dt, $msg, 0)";

Och fick:

INSERT INTO messages (sender, receiver, added, msg, poster) VALUES(0, , '2008-06-11 18:01:03', admin kunde inte godkänna den inskickade länken., 0)

:q :l

Peter SMedlem sedan dec. 20025 484 inlägg
#4

Du saknar apostrofer kring admin kunde inte....

Sedan saknas värde för $_POST[userid].

HiDensityMedlem sedan dec. 20051 644 inlägg
#5

Sätt apostrofer kring alla php-variabler som du lägger till i en SQL-sats.

I övrigt, tänk på att kontrollera alla get/post efter tecken som inte hör hemma där. SQL-injektioner är ett otyg these days. mysql_real_escape_string är ett hett tips.

129 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
126 ms — hämta tråd, inlägg och bilagor (db)