login  Naam:   Wachtwoord: 
Registreer je!
 Forum

oeps...

Offline humor - 20/03/2005 11:27
Avatar van humorHTML beginner Hallo

Ik heb een gastenboekscript die al altijd gewerkt heeft, maar nu heeft hij de volgende error bij het toevoegen van een bericht:
Citaat:
oeps...

Dit is de code:
  1. <?
  2. include("gastenboek/config.php");
  3.  
  4. $sql= "INSERT INTO gastenboek (name,email,site,bericht,date) VALUES ($name, $email, $site, $bericht, $date)";
  5. mysql_query($sql) or die("oeps..."); //Het is deze "oeps..." dat hij weergeeft.
  6. ?>

Aan wat zou de fout kunnen liggen?

11 antwoorden

Gesponsorde links
Offline Os8 - 20/03/2005 11:29
Avatar van Os8 Gouden medaille

PHP interesse
mss uw config niet goed ingevuld
Offline XenoX - 20/03/2005 11:29
Avatar van XenoX Gouden medailleGouden medaille

PHP expert
http://www.php.net/mysql_error

in plaats van die "oeps..."
Offline Tuinstoel - 20/03/2005 11:32
Avatar van Tuinstoel PHP expert - if / else gebruiken i.p.v. die();
- variabelen buiten quotes
- addslashes toepassen
- date kun je het beste met DATETIME als kolomtype doen
Offline numlockrond - 20/03/2005 11:46 (laatste wijziging 20/03/2005 11:46)
Avatar van numlockrond Onbekend
Citaat:
- variabelen buiten quotes
en strings tussen quotes:

  1. <?php
  2. $sql= "INSERT INTO gastenboek (name,email,site,bericht,date) VALUES ('".$name."', '".$emai."', '".$site."', '".$bericht."', '".$date."')";
  3. ?>
Offline humor - 20/03/2005 11:47
Avatar van humor HTML beginner @Os8: De config is goed ingevuld, want met dezelfde config worden de gegevens uit het gastenboek succesvol uitgelezen.
@Tuinstoel: Als ik dat veranderd is die "oeps..." niet weg.
@XenoX: Eens proberen, maar zal het dan weer werken?
Offline numlockrond - 20/03/2005 11:56
Avatar van numlockrond Onbekend
Citaat:
@XenoX: Eens proberen, maar zal het dan weer werken?
neej, dan weet je wat de error is. Wat tuinstoel zegt is een betere uitwerking van wat Xenox bedoelt.

maar de error die je van mysql krijgt is waarschijnlijk dat je geen quotes om strings zet (zie mijn vorige bericht).
Offline humor - 20/03/2005 12:50 (laatste wijziging 20/03/2005 12:52)
Avatar van humor HTML beginner Hallo

Het werkt nog altijd niet.
Dit is m'n database:
  1. CREATE TABLE `gastenboek` (
  2. `id` tinyint(4) NOT NULL auto_increment,
  3. `name` varchar(255) NOT NULL default '',
  4. `email` varchar(255) NOT NULL default '',
  5. `site` varchar(255) NOT NULL default '',
  6. `bericht` text NOT NULL,
  7. `date` varchar(255) NOT NULL default '',
  8. UNIQUE KEY `id` (`id`)
  9. ) TYPE=MyISAM AUTO_INCREMENT=127 ;

Code:
  1. <?
  2. include("gastenboek/config.php"); //config pagina werkt op andere pagina's, dus daar kan het niet aan liggen.
  3. if ($name && $bericht) {
  4.  
  5. $name = addslashes($name);
  6. $email = addslashes($email);
  7. $site = addslashes($site);
  8. $bericht = addslashes($bericht);
  9. $date = time();
  10.  
  11. $sql= "INSERT INTO gastenboek (name,email,site,bericht,date) VALUES ('".$name."', '".$email."', '".$site."', '".$bericht."', '".$date."')";
  12. mysql_query($sql) or die("Werkt niet...");
  13. }
  14. ?>

Ps. Vroeger werkte het script wel, maar nu niet meer. En ik kan me niet herinneren dat ik iets aangepast heb. Kan het liggen aan een of andere instelling van de database?
Offline Thomas - 20/03/2005 12:59
Avatar van Thomas Moderator Zet backticks om de namen van je kolommen ?
DATE is een datum-type (maar vreemdgenoeg geen gereserveerd woord?) dus dit zou voor problemen kunnen zorgen.
Offline humor - 20/03/2005 13:01 (laatste wijziging 20/03/2005 13:05)
Avatar van humor HTML beginner Als ik via m'n database gegevens wil invoegen krijg ik de volgende error:
Citaat:
Fout:
INSERT INTO `gastenboek` ( `id` , `name` , `email` , `site` , `bericht` , `date` )
VALUES (

'', 'naam', 'email', 'site', 'bericht', 'datum'
)
MySQL retourneerde:
#1062 - Duplicate entry '127' for key 1

Dus het moet ergens aan de databasetabel liggen. (De andere tabellen in de database werken wel).

Edit: #1062 = Message: Duplicate entry '%s' for key %d
Offline Tuinstoel - 20/03/2005 13:02 (laatste wijziging 20/03/2005 13:02)
Avatar van Tuinstoel PHP expert En FangorN heeft gelijk, en daarom gebruik ik ook altijd backticks ( ` en ` snappie). Maar gebruik ook superglobals! want ($name && $bericht) lijkt nergens op .

Edit:
Je post niet gezien, maar dat houdt in dat je gewoon je tabel even moet verwijderen + opnieuw toevoegen.
Offline humor - 20/03/2005 13:19 (laatste wijziging 20/03/2005 13:20)
Avatar van humor HTML beginner Ik heb gewoon tinyint van het veld "id" veranderd naar int en nu werkt het 
Bedankt voor jullie hulp (nu is m'n script wat verbeterd ).
Topic mag gesloten worden...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.313s