30. november 2004 - 11:28Der er
7 kommentarer og 1 løsning
Problemer med UPDATE sætning
Jeg har følgende sætning: "UPDATE pollAnswers SET Score = (Score + 1) WHERE PollAnswersID = 5"
Når den fyres af i PHPMyAdmin eller direkte på en kommandolinje, virker alt perfekt, men når jeg forsøger at afvikle den via mit PHP kode i en mysql_query() så får jeg besked om at der er fejl i min sætning nær det første tegn. Jeg er selvfølgelig 100% sikker på at det er den samme sætning jeg bruger begge steder og alt er dobbelttjekket. Det kan også nævnes at brugeren har fuld adgang til hele databasen, og at andre lignende update sætninger fungerer perfekt, dog på andre tabeller i databsen.
Nogen der har en ide om hvad det kan skyldes, eller idéer til hvor jeg skal lede efter fejl???
Majkat -> Jeg får min PHP til at printe den SQL sætning som melder fejl, og mystisk nok kan jeg paste den ind på min kommando linje og eksekvere den uden problemer, det er altså kun når den afvikles igennem mysql_query() at den giver problemer...
ericjacobsen -> Jeg tvivler på at det er i koden problemet ligger, da den er så ligetil som noget, men følgende kan jeg ikke få til at virke:
Denne funktion kaldes: function placeAnswer($intAnswerID) { $strSQL = "UPDATE pollAnswers SET Score = (Score + 1) WHERE PollAnswersID = " . $intAnswerID;
$this->insertData($strSQL); }
og funktionen insertData fra klassen databasse der er arvet af den funktion som ovenstående klasse ligger i ser ud som følger:
function insertData($strSQL) { print("Indhold af strSQL: " . $strSQL . "<br>"); mysql_query($strSQL) or die(mysql_error()); }
og fejlen der meldes er:
Indhold af strSQL: UPDATE pollAnswers SET Score = (Score + 1) WHERE PollAnswersID = 1 You have an error in your SQL syntax near '' at line 1
og det er sætningen: "UPDATE pollAnswers SET Score = (Score + 1) WHERE PollAnswersID = 1" som jeg uden problemer kan eksekvere via PHPMyAdmin eller en kommandolinje
Fundet... Kald mig gerne en idiot der har brugt 3 timer på et tåbeligt problem...
Fejlen ligger i (spot selv fejlen :-) ):
function selectData($strSQL) { $result = mysql_query($strSQL) or die(mysql_error());; return $result; }
en funktion der efter at have inkrementeret counteren henter det nye resultat, og det var den der meldte fejl, jeg have bare stirret mig blind på at det skulle være opdateringsfunktionen der meldte fejl, men EJ bragte mig på rette spor, så smid bare et svar...
Jamen ok da... så må vi vi jo håber jeg kan hjælpe dig en anden dag :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.