[PHP] Waarom werkt mijn UPDATE script niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik heb de zoekfunctie gebruikt, alles gelezen. Ik heb een aantal PHP site's bekeken. Alleen het probleem is dat ik bijna geen engels kan, dus alleen met nederlandse site's kan werken.

Maar waarom werkt mijn script niet, wat heb ik over het hoofd gezien?? Alvast bedankt!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
 
// Maak verbinding met server 
mysql_connect or die ("We kunnen geen verbinding maken met de database!");

// Selecteer database 
mysql_select_db("database") or die ("We kunnen de database niet selecteren!");


// update klanten 
$query = "UPDATE klanten SET actief_id = ja WHERE mailadres_id = blaat";


// Voer query uit + Foutmelding als er iets niet lukt
mysql_query($query) or die ("Koen, je bent een eikel."); 


echo ("Uw account is actief");
?>


Alvast bedankt mede-tweakers! :) ;) :P

[ Voor 16% gewijzigd door whoami op 21-03-2004 10:20 ]


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:45
Je bent quotes vergeten rond je mail-adres id.

Rond alfanumerieke waardes moet je quotes zetten.
Rond numerieke waardes mag je geen quotes zetten.

[ Voor 54% gewijzigd door whoami op 21-03-2004 10:20 ]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Speedener
  • Registratie: September 2000
  • Laatst online: 18-09 12:54
whoami schreef op 21 maart 2004 @ 10:20:
Je bent quotes vergeten rond je mail-adres id.

Rond alfanumerieke waardes moet je quotes zetten.
Rond numerieke waardes mag je geen quotes zetten.
en rond ja dus ook :)

edit:
en je mysql_connect klopt ook niet helemaal :P
Verwijderd schreef op 21 maart 2004 @ 10:22:
[...]


Ten eerste, bedankt voor het wijzigen van mn mailadres, stom van me... Maar als ik " en " na mn mailadres zet dan zegt ie hetvolgende:


Parse error: parse error, unexpected T_STRING in d:\apache\htdocs\blaat\actief.php on line 11


Alvast bedankt
dan gebruik je enkele quotes

[ Voor 46% gewijzigd door Speedener op 21-03-2004 10:23 ]

LG Therma V Split WP: HU143MA.U33-HN1636M NK5


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
whoami schreef op 21 maart 2004 @ 10:20:
Je bent quotes vergeten rond je mail-adres id.

Rond alfanumerieke waardes moet je quotes zetten.
Rond numerieke waardes mag je geen quotes zetten.
Ten eerste, bedankt voor het wijzigen van mn mailadres, stom van me... Maar als ik " en " na mn mailadres zet dan zegt ie hetvolgende:


Parse error: parse error, unexpected T_STRING in d:\apache\htdocs\blaat\actief.php on line 11


Alvast bedankt

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:45
Je moet quotes escapen, maar het is het beste als je gebruik maakt van parametrized queries. Al denk ik dat dat laatste niet mogelijk is in PHP / MySQL.
(Je kan het ook met enkele quotes proberen).

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Speedener schreef op 21 maart 2004 @ 10:22:

edit:
en je mysql_connect klopt ook niet helemaal :P
Staat hier allemaal op 1 machine... Dus ik hoef geen wachtwoord en username in te voeren. Anderee scripts werken wel, dus volgens mij is die goed maar Correct My If I'm Wrong!

Ik ga nou enkele " proberen _/-\o_

Acties:
  • 0 Henk 'm!

  • Speedener
  • Registratie: September 2000
  • Laatst online: 18-09 12:54
Verwijderd schreef op 21 maart 2004 @ 10:26:
[...]


Staat hier allemaal op 1 machine... Dus ik hoef geen wachtwoord en username in te voeren. Anderee scripts werken wel, dus volgens mij is die goed maar Correct My If I'm Wrong!

Ik ga nou enkele " proberen _/-\o_
Dat is nieuw voor me... maar heb je geen inlognaam of wachtwoord nodig om mysql te mogen aanspreken?

LG Therma V Split WP: HU143MA.U33-HN1636M NK5


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Speedener schreef op 21 maart 2004 @ 10:27:
[...]

Dat is nieuw voor me... maar heb je geen inlognaam of wachtwoord nodig om mysql te mogen aanspreken?
Klopt!

Maar ik heb nu dit scriptje staan:


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
 
// Maak verbinding met server 
mysql_connect or die ("We kunnen geen verbinding maken met de database!");

// Selecteer database 
mysql_select_db("database") or die ("We kunnen de database niet selecteren!");


// update klanten 
$query = "UPDATE klanten SET actief_id = 'ja' WHERE mailadres_id = 'blaat' ";


// Voer query uit + Foutmelding als er iets niet lukt
mysql_query($query) or die ("Koen, je bent een eikel."); 


echo ("Uw account is actief");
?>


En dan zegt ie: Koen, je bent een eikel. Niet erg aardig van MySQL dus....

Wat is hier aan de hand, welk stukje in mijn script is hier de boosdoener ?

Maar alvast enorm bedankt!

[ Voor 10% gewijzigd door Verwijderd op 21-03-2004 10:35 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Iemand een idee?

Acties:
  • 0 Henk 'm!

Verwijderd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
 
// Maak verbinding met server 
mysql_connect or die ("We kunnen geen verbinding maken met de database!");

// Selecteer database 
mysql_select_db("database") or die ("We kunnen de database niet selecteren!");


// update klanten 
$query = "UPDATE klanten SET actief_id = 'ja' WHERE mailadres_id = 'blaat' ";


// Voer query uit + Foutmelding als er iets niet lukt
mysql_query($query) or die ("Koen, je bent een eikel."); 


echo ("Uw account is actief");
?>
code:
1
$query = "UPDATE `klanten` SET `actief_id` = 'ja' WHERE `mailadres_id` = 'blaat' ";


Probeer deze eens...

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Speedener schreef op 21 maart 2004 @ 10:27:
[...]

Dat is nieuw voor me... maar heb je geen inlognaam of wachtwoord nodig om mysql te mogen aanspreken?
Als iemand per ongeluk een scriptje op je site krijgt weet je zeker dat ie ook gelijk database toegang heeft.. om het de inbreker maar wat makkelijker te maken :)

Alsof je binnen de sleutels van de kluis maar vast op tafel legt als je op vakantie gaat :P

[ Voor 5% gewijzigd door Bosmonster op 21-03-2004 10:46 ]


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:45
Zet eens die 'or die' af, dan zie je de foutmelding die mysql teruggeeft, wat het debuggen al heel wat makkelijker maakt.
Het is niet de bedoeling van P&W dat wij hier de code voor jou debuggen, we willen je best helpen, maar je moet zelf ook wel wat stappen ondernemen. Het krijgen van de juiste foutmelding is al de eerste.
We hebben hier ook geen glazen bol.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
whoami schreef op 21 maart 2004 @ 10:52:
Zet eens die 'or die' af, dan zie je de foutmelding die mysql teruggeeft, wat het debuggen al heel wat makkelijker maakt.
Het is niet de bedoeling van P&W dat wij hier de code voor jou debuggen, we willen je best helpen, maar je moet zelf ook wel wat stappen ondernemen. Het krijgen van de juiste foutmelding is al de eerste.
We hebben hier ook geen glazen bol.
Sorry is inderdaad een goed idee... Ik heb ook geprobeerd om tussen actief_id en mailadres_id een quote te zetten, dat maakt niets uit.

Hij geeft de volgende foutmelding:


Parse error: parse error, unexpected T_ECHO in d:\apache\htdocs\blaat\actief.php on line 19


Off-topic: Dit is allemaal om te testen, als het straks op internet staat, komt er natuurlijk een username en wachtwoord op!

Gr. Koen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
En het gekke is dat op lijn 19 gewoon het afsluitcommando staat van PHP.


Vreemde zaak....

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Zie ook de Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/silver/images/icons/edit.gif (edit) knop :)

Neem nu eens de code waar je "Koen, je bent een eikel" terugkreeg, want die werkte. Als je daar de or die ("een of ander bericht") nu eens vervangt door or die (mysql_error()) . Dan krijg je netjes de foutmelding te zien.

Later kun je de or die()'s nog wel eens compleet vervangen, maar meestal voldoet dit wel even. Voordeel van or die() is dat je alleen de relevante foutmelding te zien krijgt ipv alles wat daardoor extra veroorzaakt wordt. Dit maakt het voor de beginnende PHP-er een stuk eenvoudiger om te debuggen :)

[ Voor 21% gewijzigd door Bosmonster op 21-03-2004 11:07 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bosmonster schreef op 21 maart 2004 @ 11:06:
Zie ook de [afbeelding] (edit) knop :)

Neem nu eens de code waar je "Koen, je bent een eikel" terugkreeg, want die werkte. Als je daar de or die ("een of ander bericht") nu eens vervangt door or die (mysql_error()) . Dan krijg je netjes de foutmelding te zien.

Later kun je de or die()'s nog wel eens compleet vervangen, maar meestal voldoet dit wel even. Voordeel van or die() is dat je alleen de relevante foutmelding te zien krijgt ipv alles wat daardoor extra veroorzaakt wordt. Dit maakt het voor de beginnende PHP-er een stuk eenvoudiger om te debuggen :)
He, das nieuw voor mij die MySQL error achter "or die"

Hij geeft hetvolgende:

Unknown column 'mailadres_id' in 'where clause'

Alvast bedankt!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Jongens het werkt

Wat was het probleem?

Nou ik heb wat aanpassingen gedaan die hier werden omschreven maar heb ergens gelezen dat je _id er bij moet doen... en dta moet dus niet

Het werkt nu, wil jullie enorm bedanken voor de hulp!

Gr. Koen.
Pagina: 1