Har råkat ut för ett konstigt felmeddelande helt plötsligt. Gjorde ändringar på mitt hemsideprojekt medan jag fortvarande var inloggad på sidan och en session var aktiv. När jag loggade ut så dök följande fel upp:
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 '' at line 1
När jag skriver in domänens namn så är index.php vald som förstasida. Eftersom jag har en include header.php i index.php så torde detta MySQL-fel referera till rad 1 i den? :OO
Hur som helst har jag plöjt igenom alla min SQL-satser utan att ha kunnat hitta något fel. Nu kommer jag inte åt sidan överhuvudtaget eftersom detta fel gör att allt hänger sig. Någon som kan hjälpa mig att tolka detta fel så att jag kan gå igenom koden på nytt?
Erfarenhetsmässigt bör felet ligga i den första sql-frågan. Får jag gissa så kontrollerar du inte så att en (session)-variabel innehåller ett värde innan du skickar in den i din sql-fråga.
Någonstans har du mysql_error().
Skriv ut din SQL-fråga i samband med detta, så misstänker jag att du kommer att sakna värde på någon variabel.
Typ om du har
$sql = "SELECT * FROM tabell WHERE id = {$_GET['id']}";
och sedan inte har någon $_GET['id'].
Då kommer du att få en tom sträng, och den SQL-fråga som kommer att köras blir då:
SELECT * FROM tabell WHERE id =
En SQL-fråga som kommer att ge det fel som du får.
Nu är det långtifrån säkert att det är just detta som stökar för dig, men det bör åtminstone ge dig lite tips om vad du ska söka efter.
Nu har jag lokaliserat felet. Det fanns i headerfilen.
##### LAGRAR TIDSNUMMER FÖR SENASTE INLOGGNING #######################
if($_SESSION["active"] == true) {
$SqlUpdate = "UPDATE tblMember SET last_visit = now() WHERE memberID = ".$_SESSION["uid"]."";
echo "SQL Update HEADER 1:".$SqlUpdate."</br>";
$RSobj = mysql_query($SqlUpdate) or die (mysql_error());
}
Jag misstänker att felet ligger i att första gången man laddar sidan så är man inloggad och då finns det inte någon SESSION["uid"] utan den är tom. Det i sin tur gör att SQL-satsen får fnatt. Dock kan jag tillägga att detta aldrig varit något problem tidigare. För säkerhets skull lade jag dit en IF-sats som känner av om en SESSION["active"] är satt till true eller false för att SQL-satsen inte ska matas med ett NULL-värde. Kan tillägga att en gäst per automatik tilldelas värdet false.
Dock tycker jag att det första alternativet borde fungera likväl eftersom $_SESSION["active"] enbart blir true när en användare är inloggad och då borde aldrig programkörningen tas sig in i if-satsen...men men...allting ska inte va lätt :e :bla
Problemet dyker upp om du kan komma till
if($_SESSION["active"] == true) utan att $_SESSION["active"] ännu har fått ett värde. För då kommer det att få ett värde vid kollen...
Problemet dyker upp om du kan komma till
if($_SESSION["active"] == true) utan att $_SESSION["active"] ännu har fått ett värde. För då kommer det att få ett värde vid kollen...
Värdet på $_SESSION["active"] sätts till false allra högst upp om man kommer in på sidan som "gäst" (if(empty($_SESSION["username"]))) och inte är inloggad. Så jag tycker inte att det borde vara det som ställer till det.
258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849