Avatar billede nbj1 Praktikant
17. juli 2002 - 08:48 Der er 10 kommentarer og
1 løsning

er der fejl i denne syntax?

CREATE TABLE useronline (
  time int(15) NOT NULL default \'0\',
  ip varchar(15) NOT NULL default \'\',
  KEY ip (ip),
  KEY time (time)
) TYPE=MyISAM;
Avatar billede nbj1 Praktikant
17. juli 2002 - 08:49 #1
MySQL returnerede:


You have an error in your SQL syntax near '\'0\',
  ip varchar(15) NOT NULL default \'\',
  KEY ip (ip),
  KEY time (tim' at line 2
Avatar billede ztyxx Nybegynder
17. juli 2002 - 08:56 #2
prøv sådan

CREATE TABLE useronline (
time int(15) NOT NULL,
ip varchar(15) NOT NULL,
KEY ip (ip),
KEY time (time)
) TYPE=MyISAM
Avatar billede nbj1 Praktikant
17. juli 2002 - 09:03 #3
det vil den godt akseptere men har det så indvirkning på php koden del af kode:
$result    = mysql_query(\"INSERT INTO useronline VALUES (\'$time\',\'$ip\')\");
da jeg syntes der er lige som noget den ikke vil akseptere ved "\"
Avatar billede ztyxx Nybegynder
17. juli 2002 - 09:07 #4
det burde ikke have nogen indvirkning, du skal ikke escape i din mysql_query, kun hvis der er flere " inde i en streng, men der kan du så bruge ' istedet.
Og så mangler du at indsætte i hvilke felter dine values skal ind, nu ved jeg ikke hvad de hedder, men har kaldt dem time og ip, skift selv til det rette

$result    = mysql_query("INSERT INTO useronline (time, ip) VALUES ('$time','$ip')");
Avatar billede disky Nybegynder
17. juli 2002 - 09:08 #5
Prøv med:
CREATE TABLE useronline (
  time int(15) NOT NULL default 0,
  ip varchar(15) NOT NULL,
  KEY ip (ip),
  KEY time (time)
) TYPE=MyISAM;

Du forsøger at give en int kolonne en varchar værdi
Avatar billede ztyxx Nybegynder
17. juli 2002 - 09:09 #6
hehe, det står jo i CREATE TABLE hvad dine felter hedder, så den skal se ud som jeg viste :-)
Avatar billede nbj1 Praktikant
17. juli 2002 - 09:12 #7
ja jo det er også fint nok ztyxx og det acceptere mysql også, det var bare om det har relation til det der står i selve php?
Avatar billede ztyxx Nybegynder
17. juli 2002 - 12:24 #8
det burde ikke have det, og under alle omsændigheder så kan du, hvis du tager et dump af strukturen, se at mysql selv indsætter det, hvis intet andet anført

takke iøvrigt for point :-)
Avatar billede nbj1 Praktikant
17. juli 2002 - 12:33 #9
ztyxx har fået 80% til at virke nu det eneste der mangler er at få slettet data igen fra databasen har prøvet med dette men giver fejl hele tiden kan du se fejlen:
//  $Query .= "DELETE FROM online_brugere";
//      $Query .= "WHERE tid /'";
//      $Query .= date("Y-m-d H:i:s", (time()-60));
//      $Query .= "'";

//$res = mysql_query($Query)or die(mysql_error());
Avatar billede ztyxx Nybegynder
18. juli 2002 - 14:00 #10
det ser ud som om at du forsøger at escape ' i WHERE tid... så skal du bruge \ og det samme i din sidste, de skal så se sådan ud:

$Query .= "DELETE FROM online_brugere";
      $Query .= "WHERE tid \'";
      $Query .= date("Y-m-d H:i:s", (time()-60));
      $Query .= "\'";
Avatar billede nbj1 Praktikant
18. juli 2002 - 14:42 #11
ztyxx har fået det til at virke uden query men gemmer lige :)
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