SQL fout maar de query is wel goed.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Gerben van Erkelens

Gerben van Erkelens

21/09/2006 21:00:00
Quote Anchor link
Hallo,

Krijg een SQL error die als volgt is:
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 userid = '15' AND enqueteid = '1'' at line 4

De query waardoor dit komt heb ik inmiddels gevonden. Dat is de volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
$sql
= "UPDATE  PP1 SET  '".$PUT."' = '".$TUSSENSTAND."' WHERE userid = '".$USER."' AND  enqueteid = '".$ENQUETE."'    ";

$res = mysql_query($sql) or die(mysql_error());
?>


Deze query is echter goed. Deze wordt namelijk een paar keer meer gebruikt tijdens het doorlopen van het script en dan werkt hij wel goed :S.

Alleen de laatste keer dat hij gebruikt moet worden dan geeft hij deze error :S Iemand enig idee?
 
PHP hulp

PHP hulp

18/11/2024 09:48:13
 
Stefan van Iwaarden

Stefan van Iwaarden

21/09/2006 21:01:00
Quote Anchor link
die foutmelding zegt dat $PUT leeg is, en voor deze query houdt dat in dat hij niet weet welk veld hij moet updaten.

Tevens is $TUSSENSTAND ook leeg.
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
 
Klaasjan Boven

Klaasjan Boven

21/09/2006 21:02:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
$sql
= "UPDATE  PP1 SET  '".$PUT."' = '".$TUSSENSTAND."' WHERE userid = '".$USER."' AND  enqueteid = '".$ENQUETE."'    ";

$res = mysql_query($sql)
// or die(mysql_error());
echo $sql;
?>


wat krijg je dan?
 
Gerben van Erkelens

Gerben van Erkelens

21/09/2006 22:10:00
Quote Anchor link
Dan krijg ik:
UPDATE PP1 SET '' = '' WHERE userid = '15' AND enqueteid = '1'

Als ik echter handmatig waardes geef aan $PUT en $TUSSENSTAND dan komen deze wel in bovenstaande echo te staan maar de SQL error blijft.

het rare is dat hij dezelfde query bij andere vragen op de pagina ook gebruikt. Alleen dan zijn de vars PUT en TUSSENSTAND wel gevuld.
Gewijzigd op 01/01/1970 01:00:00 door Gerben van Erkelens
 
Joren de Wit

Joren de Wit

21/09/2006 22:18:00
Quote Anchor link
Controleer eerst of de variabele $PUT wel bestaat voordat je de query uitvooert.

Dus

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(isset($PUT))
{

   // de query
}
?>
 
Klaasjan Boven

Klaasjan Boven

21/09/2006 22:20:00
Quote Anchor link
En wat staat er normaal in $pUT?
 
Gerben van Erkelens

Gerben van Erkelens

21/09/2006 23:29:00
Quote Anchor link
Daar staat een waarde met betrekking tot wat voor soort vraag het is. bijvoorbeeld: ingetogen. Als ik echter vraagsoort bekijk dan is de waarde daarvan leeg :S

Dus dan kan hij ook niks in $PUT en $TUSSENSTAND zetten.

Ik begrijp echter niet waardoor antwoordsoort leeg is, want die wordt met de submit meegestuurd.
 
Robert Deiman

Robert Deiman

21/09/2006 23:33:00
Quote Anchor link
Komt dit toevallig uit een formulier? (zo ja gebruik dan $_POST['put'] of $_GET['put'])
 
Jan Koehoorn

Jan Koehoorn

21/09/2006 23:39:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    $sql
= "UPDATE  PP1 SET  '".$PUT."'
?>

moet sowieso zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    $sql
= "UPDATE PP1 SET ".$PUT."
?>

om de veldnaam mogen geen single quotes staan.
En natuurlijk moet er iets in de variabele staan.
 
Gerben van Erkelens

Gerben van Erkelens

21/09/2006 23:59:00
Quote Anchor link
ah dat van Jan is aangepast, maar de error blijft.

Ik ben er nu achter dat antwoordsoort leeg is op de 1 of andere manier.

Eens kijken waarnaartoe ik het kan afleiden zodat ik straks hier weer wat meer duidelijkheid kan posten.
 
Jan Koehoorn

Jan Koehoorn

22/09/2006 00:14:00
Quote Anchor link
Check het eens zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        print_r ($_POST);
    }

?>

dan zie je of er iets in de POST array zit.
 
PHP Newbie

PHP Newbie

22/09/2006 00:51:00
Quote Anchor link
Jan:
Check het eens zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        print_r ($_POST);
    }

?>

dan zie je of er iets in de POST array zit.


En je ziet WAT er in zit, en dat is vaak nog fijner ;-)
 
Wout van der Burg

Wout van der Burg

22/09/2006 08:21:00
Quote Anchor link
Probeer het eens met LIKE, wil ook weleens vreemd genoeg schelen..
althans.. bij mij dan
 
Jan Koehoorn

Jan Koehoorn

22/09/2006 08:52:00
Quote Anchor link
@ Wout: het gaat niet om LIKE. Het gaat er om dat de variabele $PUT niet gevuld wordt waardoor er geen tabelnaam in de query komt te staan.
 
- SanThe -

- SanThe -

22/09/2006 11:01:00
Quote Anchor link
Is het wel met hoofdletters? Zie het formulier.
 
Gerben van Erkelens

Gerben van Erkelens

22/09/2006 11:12:00
Quote Anchor link
Yup het is met hoofdletters.
 
- SanThe -

- SanThe -

22/09/2006 11:22:00
Quote Anchor link
En wat geeft het scriptje van Jan als antwoord?
 
Robert Deiman

Robert Deiman

22/09/2006 11:22:00
Quote Anchor link
Hoe haal je $PUT op uit je formulier, gaat er nog een soort van controle overheen? Als het veldnaam PUT is, en je method POST, dan krijg je:

$PUT=gecontroleerde($_POST['PUT']);

met GET krijg je:
$PUT=gecontroleerde($_GET['PUT']);
____________________________________________

gecontroleerde wil alleen zeggen dat je de POST of GET waarde wel moet controleren, voor je hem gaat gebruiken.
 
Gerben van Erkelens

Gerben van Erkelens

22/09/2006 11:42:00
Quote Anchor link
Dat script van Jan kan ik vanavond helaas pas testen ben de hele dag aan het werk op een plek waar ik het bestand niet kan bereiken.

$PUT (en ook $TUSSENSTAND) worden niet opgehaald uit het formlier. $antwoordsoort echter wel.

Met de volgende code wordt PUT en TUSSENSTAND gevuld, tenminste dat zou hij moeten doen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
$antwoordsoort
= $_POST['antwoordsoort'];
if ($antwoordsoort == "vorm"){
$PUT = "vragen_vorm";
$TUSSENSTAND = "4" //deze waarde is echter variabel maar even ter vb.
}elseif ($antwoordsoort == "ingetogen"){
$PUT = "vragen_ingetogen";
$TUSSENSTAND = "2"
}else{
 1. Fout, geen antwoordsoort gegeven.
}

?>


De else zorgt ervoor dat ik weet wanneer de variabele $antwoordsoort geen waarde heeft. Vandaar dat ik weet dat ik in de Post moet gaan kijken of deze waarde ingevuld wordt!
Gewijzigd op 01/01/1970 01:00:00 door Gerben van Erkelens
 
Jan Koehoorn

Jan Koehoorn

22/09/2006 11:43:00
Quote Anchor link
Aangezien $PUT niet gevuld wordt denk ik dat $antwoordsoort niet de goede waarde krijgt.
 
Robert Deiman

Robert Deiman

22/09/2006 11:48:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
$antwoordsoort
= $_POST['antwoordsoort'];
if ($antwoordsoort == "vorm"){
$PUT = "vragen_vorm";
$TUSSENSTAND = "4" //deze waarde is echter variabel maar even ter vb.
}elseif ($antwoordsoort == "ingetogen"){
$PUT = "vragen_ingetogen";
$TUSSENSTAND = "2"
}else{
 echo '1. Fout, geen antwoordsoort gegeven.';//zoals jij hem had zie je geen melding, dus als het goed is moet je nu wel deze melding zien.
}
?>
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.