webForumDet fria alternativet

Fel på INSERT

10 svar · 309 visningar · startad av lillebror

lillebrorMedlem sedan apr. 20041 597 inlägg
#1

Hej,

Får följande fel på min SQL-sats. Har en nästan likadan till en annan funktion som funkar strålande så jag förstår inte var problemet uppstår riktigt.

$sqlInsert = "INSERT INTO tblArticleComments (memberID, articleID, date_time, comment, ip) VALUES ($userdata['from'], $userdata['articleID'], now(), '$userdata[comment]', '$userdata[ip]')";

memberID: INT
articleID: INT
date_time: DATETIME
comment: VARCHAR
ip: VARCHAR

Felmeddelande:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in
m_soderlundMedlem sedan sep. 20026 425 inlägg
#2

vad står det om du skriver ut SQL-frågan?

echo $sqlInsert;
lillebrorMedlem sedan apr. 20041 597 inlägg
#3

Jag får fortfarande bara upp felmeddelandet även fast jag kör med echo. Det jag gör är att hämta information från ett formulär som jag sedan lägger in i tabellen. Jag har skrivit ut alla mottagna variabler för att verifiera att innehållet är korrekt och så här långt stämmer det....

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Det är ju ett PHP-fel som du får så det har inget direkt med SQL-frågan att göra. Kan det vara någon glömd ' eller ; ovanför?

lillebrorMedlem sedan apr. 20041 597 inlägg
#5

Okej..det är nog sant att det är PHP och inte SQL som det är fel på.

Hela den mottagande funktionen ser ut så här:

if(trim($_POST['sendcomment']) == 'Skicka') {
	$userdata['comment'] = trim($_POST['comment']);
	$userdata['from'] = trim($_POST['from']);
	$userdata['articleID'] = trim($_POST['articleID']);
	$userdata['ip'] = trim($_POST['ip']);

	echo "</br>Från: ".$userdata['from'];
	echo "</br>ArtikelID ".$userdata['articleID'];
	echo "</br>Kommentar: ".$userdata['comment'];
	echo "</br>IP: ".$userdata['ip'];

	//Uppdaterar kommentarer för artikel i databasen ############################

	$sqlInsert = "INSERT INTO tblArticleComments (memberID, articleID, date_time, comment, ip) VALUES ('$userdata['from']', '$userdata['articleID']', now(), '$userdata[comment]', '$userdata[ip]')";
	echo "SQL: ".$sqlInsert; 
	mysql_query($sqlInsert) or die (mysql_error());
	echo "<script Language='JavaScript'>location.href=('../index.php');</script>";
}

/R: Kunde inte se att det skulle vara någon "fnutt" eller ; som saknades på rak arm när jag lusläste koden. Men jag brukar bli lite kodblind när jag stirrar på något för länge :)

LarsGMedlem sedan dec. 200012 464 inlägg
#6
VALUES ('$userdata['from']'

mot

VALUES ('" . $userdata['from'] ."'

usw

lillebrorMedlem sedan apr. 20041 597 inlägg
#7

Tack! Jag vet att jag gjort på ett liknande sätt i en SELECT-fråga tidigare, men aldrig i en INSERT. Det kallas väl att man konkatenerar, right?

Denna SQL-fråga som jag använt mig av tidigare fungerar utmärkt trots att den är skriven på samma sätt som min första här. Hur kommer det sig?

$sqlInsert = "INSERT INTO tblCommunityMailMessage (posted, subject, content, fromID, toID, folderID) VALUES (now(), '$userdata[subject]', '$userdata[message]', '$userdata[from]', '$userdata[to]', 1)";
lillebrorMedlem sedan apr. 20041 597 inlägg
#8

Din SQL-sats löste för övrigt mitt problem :) Har precis rättat till koden.

lillebrorMedlem sedan apr. 20041 597 inlägg
#9

Om jag spinner vidare väldigt kort på det här problemet du just löste. Jag har en kommentarstabell för artiklar där folk kan kommentera. Nyckeln i denna tabell betstår av (memberID, articleID), vilket innebär att en medlem endast kan avge kommentar på en viss artikel en gång. Jag provade nu att skriva ytterligare en kommentar för skojs skull och då kom helt riktigt SQL-meddelandet "Duplicate entry '1-1' for key 1" upp eftersom detta är en composite key. Finns det någon funktion man kan använda sig av för att känna av om detta är fallet och automatiskt dirigera om användaren till föregående sida fortfarande kvar i min funktion? Luddigt? :)

lillebrorMedlem sedan apr. 20041 597 inlägg
#10

När jag remmade följande:

or die (mysql_error());

så gick han tillbaka till ursprungssidan utan att lagra något verkar det som.

@ndersMedlem sedan juni 200032 969 inlägg
#11

Tråden flyttas från SQL.

Mvh

123 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)