Avatar billede jumario Nybegynder
18. september 2002 - 09:28 Der er 10 kommentarer og
1 løsning

Fejl ved insert i DB

følgende script laver fejl:
  $dato = date("Y-m-d");
  $query = "INSERT INTO t_comments (kundenr, overskrift, tekst, dato, slettet) values ($s_kundenr, '$overskrift', '$tekst', '$dato', 0)";

ved en  echo "eksekverer: $query <br>"; får jeg følgende output:

INSERT INTO t_comments (kundenr, overskrift, tekst, dato, slettet) values (1, 'afdadf', 'dsfdsf', '2002-09-18', 0)

men stadig fejlen "invalid forespørgsel"

Det underlige er at hvis jeg kopierer indholdet af $query direkte ind i mysql console så virker det fint og rækken bliver oprettet! Hvad kan det skyldes?
Avatar billede jakoba Nybegynder
18. september 2002 - 09:34 #1
Kan det være at dit felt dato ikke har typen char eller varchar?
Avatar billede jumario Nybegynder
18. september 2002 - 09:35 #2
ja det har typen date
Avatar billede jakoba Nybegynder
18. september 2002 - 09:50 #3
Øv, den er også god nok, så det burde du :(

men jeg tror stadig det er noget med din tabels opbygning. Har du stadig din CREATE TABLE kommando så du kan vise os hvilke typer og attributter der er knyttet til de enkelte felter?

har du checket at du bruger STORE/små bogstaver ens i tabelnavnet, og ellers staver alle navne korrekt.
Avatar billede jakoba Nybegynder
18. september 2002 - 09:51 #4
et gæt:  er kundenummer et autoincrement felt?
Avatar billede jumario Nybegynder
18. september 2002 - 09:59 #5
min t_comments tabel ser ud som følgende:

CREATE TABLE t_comments (
  commentnr    int(5)        NOT NULL auto_increment,
  kundenr    int(8)        NOT NULL,
  overskrift    varchar(250)    NOT NULL,
  tekst        text        NOT NULL,
  dato        date        NOT NULL,
  slettet    int (1)        NOT NULL,
  PRIMARY KEY     (commentnr)
);

Ja, kundenummer er autoincrement. Men ikke i comments-tabellen. kun i kunde-tabellen som ser ud som følgende:

CREATE TABLE t_kunder
(
  kundenr    int(8)        NOT NULL auto_increment,
  kundenavn    varchar(50)    NOT NULL,
  kontaktperson varchar(50)    NOT NULL,
  telefonnummer    int(8)        NOT NULL,
  email        varchar(50),
  adresse    varchar(75)    NOT NULL,
  postnummer    int(4)        NOT NULL,
  status    int(1)        NOT NULL,
  password    varchar(50)    NOT NULL,
  PRIMARY KEY     (kundenr)
);
Avatar billede jakoba Nybegynder
18. september 2002 - 10:11 #6
det ser stadig helt fint ud.

selv angiver jeg altid det autoincrementerende felt også; men det burde ikke være nødvendigt ifølge hvad jeg kan finde i manualen.
du kan evt prøve:

$query = "
    INSERT INTO t_comments
      ( commentnr, kundenr, overskrift, tekst, dato, slettet )
    VALUES
      ( null, $s_kundenr, '$overskrift', '$tekst', '$dato', 0)
";

mvh JakobA
Avatar billede jumario Nybegynder
18. september 2002 - 10:34 #7
Underligt som det er virker det heller ikke ikke. kan godt skrive det direkte i mysql console. men når siden skal køre det? næ nej
findes der noget alternativ til mysql_query() ?
Avatar billede jakoba Nybegynder
18. september 2002 - 10:46 #8
der er  mysql_db_query
    resource mysql_db_query ( string database, string query [, resource link_identifier])
men det er præcis den samme query der startes.

kunne det være noget med skriverettighederne på den tablefil? når du tilgår den via konsollen er du owner, det er du ikke fra siden.

men jeg har svært ved at se hvordan de skulle kunne blive sat forkert.
du kan evt teste for det ved at prøve at ændre i en record der er oprettet.
Avatar billede jakoba Nybegynder
18. september 2002 - 11:16 #9
husk forresten at sætte  or die( mysql_error() )  på alle de steder du kan:

mysql_connect($server, $brugernavn, $password)
  or die( "Unable to connect\n". mysql_error() );

mysql_select_db("$db_navn")
  or die("Unable to select db ".mysql_error()."\n");

$query = "
    INSERT INTO t_comments
      ( commentnr, kundenr, overskrift, tekst, dato, slettet )
    VALUES
      ( null, $s_kundenr, '$overskrift', '$tekst', '$dato', 0)
";
mysql_query( $query )
  or die( "Unable to insert. Reason: " .mysql_error() ."\n" .$query );
Avatar billede jumario Nybegynder
18. september 2002 - 11:31 #10
dum som jeg er havde jeg glemt at include alt det grundlæggende db-connect stuff...
mysql_connect osv...
bare ikke en særlig fyldig fejlbeskrivelse man får! Men nu virker det! Du får pointsne alligevel jakoba, som tak for ellers din udmærkede indsats.
Hvis du laver et svar :)
Avatar billede jakoba Nybegynder
18. september 2002 - 11:35 #11
he he, det gør jeg så :-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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