login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[opgelost] wil niet INSERTEN met mysql

Offline Xzero - 11/10/2005 22:12 (laatste wijziging 12/10/2005 00:19)
Avatar van XzeroPHP beginner heey,

ik zit hier met een probleempje... als ik bij de gastenboek iets wil toevoegen, dan wil hij niet inserten... deze fout krijg ik:

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 'by, email, type, message, date, town, country) VALUES ('', 'Xze

en dit is dan dat stukje van mijn code:

  1. <?PHP
  2. if (count($error) == 0) {
  3. $title = addslashes($_POST['title']);
  4. $name = addslashes($_POST['by']);
  5. $email = $_POST['email'];
  6. $town = addslashes($_POST['town']);
  7. $country = addslashes($_POST['country']);
  8. $message = nl2br($_POST['message']);
  9. $message = eregi_replace("\n", "", $message);
  10.  
  11. $insert = "INSERT INTO guestbook (title, by, email, type, message, date, town, country) VALUES ('".$title."', '".$name."', '".$email."', 'guest', '".$message."', NOW(), '".$town."', '".$country."')";
  12. mysql_query($insert) or die(mysql_error());
  13. ?>

19 antwoorden

Gesponsorde links
Offline SvenP - 11/10/2005 22:17
Avatar van SvenP PHP interesse hoeft daar geen id bij?
iig
  1. $insert = "INSERT INTO `guestbook` (`title`, `by`, `email`, `type`, `message`, `date`, `town`, `country`) VALUES ('$title', '$name', '$email', 'guest', '$message', '"". NOW() ."', '$town', '$country')";
Offline Xzero - 11/10/2005 22:26
Avatar van Xzero PHP beginner id is auto_increment en is primary key, dus die moet ie vanzelf toevoegen... maar alsnog werkt het niet...
Offline Rens - 11/10/2005 22:26 (laatste wijziging 11/10/2005 22:27)
Avatar van Rens Gouden medaille

Crew algemeen
Ik neem aan dat er een "reserved word" tussen zit.
Dus een woord gebruikt door MySQL zelf, en ook door jou.

http://dev.mysq...words.html
Check maar eens: By
Die staat bij de reserved words.
Offline Xzero - 11/10/2005 22:43
Avatar van Xzero PHP beginner en alsnog werkt ie niet... 

ik heb nu dit:

  1. <?PHP
  2. if (isset($_POST['add'])) {
  3. $error = array();
  4.  
  5. if (empty($_POST['name'])) {
  6. $error[] = "You have to fill in your name.";
  7. } elseif (empty($_POST['email']) || !eregi('@',$_POST['email']) || !eregi('.',$_POST['email']) || eregi(' ',$_POST['email'])) {
  8. $error[] = "You have to fill in your correct e-mail address.";
  9. } elseif (empty($_POST['message'])) {
  10. $error[] = "You have to post a message.";
  11. }
  12.  
  13. if (count($error) == 0) {
  14. $title = addslashes($_POST['title']);
  15. $name = addslashes($_POST['name']);
  16. $email = $_POST['email'];
  17. $town = addslashes($_POST['town']);
  18. $country = addslashes($_POST['country']);
  19. $message = nl2br($_POST['message']);
  20. $message = eregi_replace("\n", "", $message);
  21.  
  22. $insert = "INSERT INTO guestbook (title, whom, email, typeposter, message, datewhen, town, country) VALUES ('$title', '$name', '$email', 'guest', '$message', '".NOW()."', '$town', '$country')";
  23. mysql_query($insert) or die(mysql_error());
  24. ?>
  25. GELUKT
  26. <?PHP
  27. } else {
  28. ?>
  29. IETS NIET INGEVULD
  30. <?PHP
  31. }
  32. } else {
  33. ?>
  34. FORM
  35. <?PHP
  36. }
  37. ?>


ik zie zelf echt geen fout hierin... mijn database structuur heb ik ook verandert (andere name gegeven die daar niet in voorkomen..)
Offline Thomas - 11/10/2005 23:01
Avatar van Thomas Moderator NOW() is een MySQL-functie, geen PHP-functie.

Is je kolom datewhen van het type DATETIME?
Offline Xzero - 11/10/2005 23:04 (laatste wijziging 11/10/2005 23:06)
Avatar van Xzero PHP beginner ja... het is DATETIME 

hier is mn sql geval:

  1. CREATE TABLE guestbook(
  2. id INT(5) not null AUTO_INCREMENT,
  3. title VARCHAR(100) not null DEFAULT '',
  4. whom VARCHAR(50) not null,
  5. email VARCHAR(50) not null,
  6. typeposter VARCHAR(10) not null,
  7. message TEXT not null,
  8. date DATETIME not null,
  9. town VARCHAR(50) not null DEFAULT '',
  10. country VARCHAR(50) not null DEFAULT '',
  11. PRIMARY KEY (id),
  12. UNIQUE KEY (id)
  13. )


owja, ff vermelden dat ik die datewhen tog nog in date heb verandert, want ze werken allebei niet.. 
Offline Thomas - 11/10/2005 23:09 (laatste wijziging 11/10/2005 23:10)
Avatar van Thomas Moderator Hmm... staat gpc_magic_quotes aan?
Query-foutmeldingen?
Dump je insert-query eens?

Weet het zo ook niet .

Edit: DATE is volgens mij ook een gereserveerd woord?
Zet alle kolomnamen eens tussen backquotes (``) in je query, dan heb je daar iig geen last van.
Offline Xzero - 11/10/2005 23:15
Avatar van Xzero PHP beginner ik kreeg eerst wel zo'n foutmelding... maar nu zie ik helemaal nix meer, het is gewoon een leeg vlak... en wat bedoel je met dumpen van insertquery? 
Offline Gerard - 11/10/2005 23:18
Avatar van Gerard Ouwe rakker Je gehele query in een varabiele stoppen voordat je hem gaat uitvoeren. Deze kan je dan echoën zodat je de inhoud ziet.

  1. <?php
  2. $qQuery = "SELECT * FROM tabel";
  3.  
  4. echo $qQuery;
  5.  
  6. $rSomething = mysql_query($qQuery);
  7.  
  8. ?>
Offline Xzero - 11/10/2005 23:21
Avatar van Xzero PHP beginner waarom is dit nodig, en moet dat in een aparte document of gewoon in dezelfde waar ik INSERT heb staan...
Offline Gerard - 11/10/2005 23:24
Avatar van Gerard Ouwe rakker Hetzelfde, zo kan je zien of je variabelen wel goed meegegeven worden in de query en hoe je query er dus precies uit ziet wanneer hij naar de dbms wordt verzonden.
Offline Thomas - 11/10/2005 23:24 (laatste wijziging 11/10/2005 23:26)
Avatar van Thomas Moderator Dat heet "debuggen" en kan in dit geval wel handig zijn.

Desnoods doe je die($query); voordat je de query daadwerkelijk uitvoert. Als je maar ziet wat je query doet voordat je het in je db probeert te wurmen (wat blijkbaar niet lukt).
Offline Xzero - 11/10/2005 23:28 (laatste wijziging 11/10/2005 23:32)
Avatar van Xzero PHP beginner Ok ik heb nu dit, ik weet niet of het echt klopt 

  1. <?PHP
  2. if (count($error) == "0") {
  3. $title = addslashes($_POST['title']);
  4. $name = addslashes($_POST['name']);
  5. $email = $_POST['email'];
  6. $town = addslashes($_POST['town']);
  7. $country = addslashes($_POST['country']);
  8. $message = nl2br($_POST['message']);
  9. $message = eregi_replace("\n", "", $message);
  10.  
  11. $qQuery = "SELECT * FROM guestbook";
  12.  
  13. echo $qQuery;
  14.  
  15. $rSomething = mysql_query($qQuery);
  16.  
  17.  
  18. $insert = "INSERT INTO `guestbook`(`title`, `whom`, `email`, `typeposter`, `message`, `date`, `town`, `country`) VALUES ('".$title."', '".$name."', '".$email."', guest, '".$message."', '".NOW()."', '".$town."', '".$country."')";
  19. mysql_query($insert) or die(mysql_error());
  20. ?>


en als u (Fangorn) dit over zou kunnen overnemen en neerzetten waar die die($query) moet, dan zou ik dat echt waarderen 

EDIT: Trouwens, mijn resultaat als ik op submit klik, dan krijg ik SELECT * FROM guestbook te zien... 
Offline Gerard - 11/10/2005 23:32 (laatste wijziging 11/10/2005 23:32)
Avatar van Gerard Ouwe rakker
  1. <?PHP
  2. if (count($error) == "0") {
  3. $title = addslashes($_POST['title']);
  4. $name = addslashes($_POST['name']);
  5. $email = $_POST['email'];
  6. $town = addslashes($_POST['town']);
  7. $country = addslashes($_POST['country']);
  8. $message = nl2br($_POST['message']);
  9. $message = eregi_replace("\n", "", $message);
  10.  
  11. $insert = "INSERT INTO `guestbook`(`title`, `whom`, `email`, `typeposter`, `message`, `date`, `town`, `country`) VALUES ('".$title."', '".$name."', '".$email."', 'guest', '".$message."', 'NOW()', '".$town."', '".$country."')";
  12.  
  13. echo $insert;
  14.  
  15. mysql_query($insert) or die(mysql_error());
  16. ?>
Offline Xzero - 11/10/2005 23:37 (laatste wijziging 11/10/2005 23:40)
Avatar van Xzero PHP beginner Huh, wtf? hoe komt het dat hij het nu wel doet?   :D


EDIT: btw, als ik invoeg, dan klopt de datum EN tijd niet ... nog een oplossing iemand?
Offline Gerard - 11/10/2005 23:50
Avatar van Gerard Ouwe rakker "het klopt niet".... wat klopt niet? is het niet de juiste datum? loopt de tijd achter?
Offline Xzero - 12/10/2005 00:19
Avatar van Xzero PHP beginner het is al opgelost... dank jullie zeer voor jullie hulp 
Offline Thomas - 12/10/2005 07:42
Avatar van Thomas Moderator Mja wat was de fout nu (leermoment voor de rest)?
Offline Xzero - 15/10/2005 17:32 (laatste wijziging 15/10/2005 17:51)
Avatar van Xzero PHP beginner Ik had dit:
  1. <?PHP
  2. $insert = "INSERT INTO `guestbook`(`title`, `whom`, `email`, `typeposter`, `message`, `date`, `town`, `country`) VALUES ('".$title."', '".$name."', '".$email."', 'guest', '".$message."', 'NOW()', '".$town."', '".$country."')";
  3. ?>


maar die 'NOW()' moest zonder die '... dus NOW() gewoon 

Tijdens het debuggen:
  1. <?PHP
  2. if (count($error) == "0") {
  3. $title = addslashes($_POST['title']);
  4. $name = addslashes($_POST['name']);
  5. $email = $_POST['email'];
  6. $town = addslashes($_POST['town']);
  7. $country = addslashes($_POST['country']);
  8. $message = nl2br($_POST['message']);
  9. $message = eregi_replace("\n", "", $message);
  10.  
  11. $insert = "INSERT INTO `guestbook`(`title`, `whom`, `email`, `typeposter`, `message`, `date`, `town`, `country`) VALUES ('".$title."', '".$name."', '".$email."', 'guest', '".$message."', 'NOW()', '".$town."', '".$country."')";
  12.  
  13. echo $insert;
  14.  
  15. mysql_query($insert) or die(mysql_error());
  16. ?>


Na het debuggen:
  1. <?PHP
  2. if (count($error) == "0") {
  3. $title = addslashes($_POST['title']);
  4. $name = addslashes($_POST['name']);
  5. $email = $_POST['email'];
  6. $town = addslashes($_POST['town']);
  7. $country = addslashes($_POST['country']);
  8. $message = nl2br($_POST['message']);
  9. $message = eregi_replace("\n", "", $message);
  10.  
  11. $insert = "INSERT INTO `guestbook`(`title`, `whom`, `email`, `typeposter`, `message`, `date`, `town`, `country`) VALUES ('".$title."', '".$name."', '".$email."', 'guest', '".$message."', NOW(), '".$town."', '".$country."')";
  12.  
  13. mysql_query($insert) or die(mysql_error());
  14. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.282s