Avatar billede flushout Nybegynder
04. marts 2004 - 20:22 Der er 14 kommentarer og
1 løsning

Jeg får en fejl når jeg indsætter mine data i databasen..

Jeg er ikke specielt en haj til MySQL og databaser, så det kan nemt være en "dumme" fejl..

Jeg får: "Fejl ved indsættelse i databasen." hver gang jeg prøver

Jeg har testet at alle data kommer igennem systemet, det gør de hver gang uden problemer, så alle variablerne indeholder altså enten et tal eller noget teskt. Jeg har sat DB'en op med CHAR fordi jeg ikke kunne få den til at virke med INT, men den virker heller ikke med CHAR så nu spørger jeg her :)

Please help, jeg skal have det her færdigt i aften!!!! :[


<?php
// ########## HENTER DATA FRA FORRIGE SIDE ##########
    $email            = $_POST['email'];
    $selskab_navn         = $_POST['selskab_navn'];
    $selskab_Andet         = $_POST['selskab_navnAndet'];   
    $sidste_skift      = $_POST['sidste_skift'];
    $sidste_ggang      = $_POST['sidste_gennemgang'];
    $tilfreds          = $_POST['tilfreds'];
    $anbefale          = $_POST['anbefale'];
    $samme_selskab      = $_POST['samme_selskab'];
    $oplysning          = $_POST['oplysning'];
    $buy              = $_POST['buy'];
    $anmelde          = $_POST['anmelde'];
    $provet          = $_POST['provet'];
    $aEt              = $_POST['a1'];
    $aTo              = $_POST['a2'];
    $aTre              = $_POST['a3'];
    $aFire          = $_POST['a4'];
    $aFem              = $_POST['a5'];
    $aSeks          = $_POST['a6'];
    $aSyv          = $_POST['a7'];
    $navn          = $_POST['navn'];
    $adr              = $_POST['adr'];
    $postnr          = $_POST['postnr'];
    $by              = $_POST['by'];
    $tlf              = $_POST['tlf'];
    $tlftid          = $_POST['tlftid'];
    $mobil          = $_POST['mobil'];
    $emailNy        = $_POST['emailNyIn'];

// ######### GEMMER INFORMATIONERNE I DATABASEN #########

$db = mysql_connect("XXXXXXXXXX", "XXXXXXXX", "XXXXX") or die("kunne ikke få forbindelse til databasen");
mysql_select_db("topdk",$db) or die("Forkert database");

mysql_query("INSERT INTO resultater (email, selskab_navn, selskab_navnAndet, sidste_skift, sidste_gennemgang, tilfreds, anbefale, samme_selskab, oplysning, buy, anmelde, provet, aEt, aTo, aTre, aFire, aFem, aSeks, aSyv, navn, adr, postnr, by, tlf, tlftid, mobil, emailNy) VALUES ($email, $selskab_navn, $selskab_Andet, $sidste_skift, $sidste_ggang, $tilfreds, $anbefale, $samme_selskab, $oplysning, $buy, $anmelde, $provet, $aEt, $aTo, $aTre, $aFire, $aFem, $aSeks, $aSyv, $navn, $adr, $postnr, $by, $tlf, $tlftid, $mobil, $emailNy);") or die("Fejl ved indsættelse i databasen.");
       
$res_id = mysql_insert_id();

?>

Databasen er sat op sådan her:

ID: INT(11) PRIMARY UNSIGNED Not Null AUTOINCREMENT
RESTEN: CHAR(100) Not Null
Avatar billede clausjul Nybegynder
04. marts 2004 - 20:24 #1
Det ser ud til at der mangler quotes! F.eks. skal $email være opstillet som '$email'
Avatar billede erikjacobsen Ekspert
04. marts 2004 - 20:27 #2
Det er nok fejlen. Men du kan få mere hjælp fra systemet ved at erstatte

...or die("Fejl ved indsættelse i databasen.");

med

...or die("Fejl ved indsættelse i databasen: ".mysql_error());
Avatar billede flushout Nybegynder
04. marts 2004 - 20:28 #3
Fejl ved indsættelse i databasen.

Skal der være quotes om både $email og email ...?
Avatar billede clausjul Nybegynder
04. marts 2004 - 20:29 #4
Alle felter skal helst have quotes imellem sig, f.eks. '$email' eller mysql_escape_string($email)
Avatar billede clausjul Nybegynder
04. marts 2004 - 20:30 #5
Nej, kun ved variabler altså alt som begynder med $
Avatar billede flushout Nybegynder
04. marts 2004 - 20:34 #6
Nu har jeg ændret min query til dette:

mysql_query("INSERT INTO resultater ('email', 'selskab_navn', 'selskab_navnAndet', 'sidste_skift', 'sidste_gennemgang', 'tilfreds', 'anbefale', 'samme_selskab', 'oplysning', 'buy', 'anmelde', 'provet', 'aEt', 'aTo', 'aTre', 'aFire', 'aFem', 'aSeks', 'aSyv', 'navn', 'adr', 'postnr', 'by', 'tlf', 'tlftid', 'mobil', 'emailNy') VALUES ('$email', '$selskab_navn', '$selskab_Andet', '$sidste_skift', '$sidste_ggang', '$tilfreds', '$anbefale', '$samme_selskab', '$oplysning', '$buy', '$anmelde', '$provet', '$aEt', '$aTo', '$aTre', '$aFire', '$aFem', '$aSeks', '$aSyv', '$navn', '$adr', '$postnr', '$by', '$tlf', '$tlftid', '$mobil', '$emailNy');") or die("Fejl ved indsættelse i databasen".mysql_error());

Jeg får denne fejl:

Parse error: parse error, unexpected '\"' in /hotel/elverhojen/WWW/topdk/popup5.php on line 73

Min query står på linie 73..
Avatar billede flushout Nybegynder
04. marts 2004 - 20:37 #7
Fejl ved indsættelse i databasenYou have an error in your SQL syntax near 'by, tlf, tlftid, mobil, emailNy) VALUES ('jeppe@jgldesign.dk', '10', 'dfdffd', '' at line 1
Avatar billede clausjul Nybegynder
04. marts 2004 - 20:37 #8
Du skal IKKE sætte quotes i de felter som ikke begynder med $ f.eks.

mysql_query("INSERT INTO resultater (email,selskab_navn) VALUES ('$email','$selskabs_navn') ... har kun taget 2 felter i dette eksempel.
Avatar billede clausjul Nybegynder
04. marts 2004 - 20:40 #9
Aha, "by" er et reserveret ord i MYSQL, så du skal skrive et andet feltnavn, f.eks. city - eller skrive `by`
Avatar billede flushout Nybegynder
04. marts 2004 - 20:40 #10
Dvs. den skal se sådan her ud: ???

mysql_query("INSERT INTO resultater ('email','selskab_navn') VALUES ($email,$selskabs_navn)
Avatar billede clausjul Nybegynder
04. marts 2004 - 20:42 #11
Nej!
mysql_query("INSERT INTO resultater (email,selskab_navn) VALUES ('$email','$selskabs_navn')

:)
Avatar billede erikjacobsen Ekspert
04. marts 2004 - 20:43 #12
Du kan godt beholde by, men sådan (skitse)

mysql_query("INSERT INTO resultater (`email`,`by`) VALUES ('$email','$by_navn')") or die(mysql_error());
Avatar billede flushout Nybegynder
04. marts 2004 - 20:43 #13
oki.. tak.. jeg ved godt jeg spørger dumt, men jeg er selvlært og har aldrig rigtig sat en DB op fra bunden før nu.. :P
Avatar billede flushout Nybegynder
04. marts 2004 - 20:47 #14
TAK!!! fejlen er fundet, det var manglende quotes og ordet by der var forkert :) :) :)
Avatar billede erikjacobsen Ekspert
04. marts 2004 - 20:55 #15
by er ikke forkert. Du kan sagtens beholde det ved at skrive `by`
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester