Avatar billede doomstone-dk- Nybegynder
22. oktober 2005 - 19:20 Der er 8 kommentarer og
1 løsning

Upload et billede

Her har jeg en sql formel
$sql = "INSERT INTO `filer` (`navn` ,
`bruger` ,
`type` ,
`indhold` ,
`tid` )
VALUES ('".$_FILES['billede']['name']."',
'".$_SESSION['bid']."',
'".$_FILES['billede']['type']."',        ".file_get_contents($_FILES["billede"]["tmp_name"]).",
'".time()."')";
mysql_query($sql) or die ($sql." -- ".mysql_error());

Hvilket giver...

INSERT INTO `filer` (`navn` ,
`bruger` ,
`type` ,
`indhold` ,
`tid` )
VALUES ('progressbg.gif',
'1',
'image/gif',
GIF89aØ + noget mere som den ikke vil parse...,
'1130001364')


Og det give mig så fejlen..
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 '' at line 9

Hvad er det jeg laver forkert?
Avatar billede jaw Nybegynder
22. oktober 2005 - 19:24 #1
'".file_get_contents($_FILES["billede"]["tmp_name"])."'

Du mangler vist lige et par ' ?
Avatar billede doomstone-dk- Nybegynder
22. oktober 2005 - 19:24 #2
Altser der der skal ske er at der skal uploades et billede til databasen :D
Sådan ser min database ud :D
CREATE TABLE `filer` (
  `id` int(11) NOT NULL auto_increment,
  `navn` varchar(64) NOT NULL default '',
  `bruger` int(11) NOT NULL default '0',
  `type` varchar(64) NOT NULL default '',
  `indhold` longblob NOT NULL,
  `tid` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

Det virker helt find når jeg uploader via phpmyadmin.. men ikke når jeg bruger mit eget lille script :D
Avatar billede doomstone-dk- Nybegynder
22. oktober 2005 - 19:25 #3
Phpmyadmin bruger ikke '' omkring fil indholder..
jeg startede ud med at gøre det med '' omkring.. virkede ikke så jeg prøve uden ''
Avatar billede jaw Nybegynder
22. oktober 2005 - 19:26 #4
Det skal være med, ellers indsætter du int (tal). Hvis det stadig ikke virker, så kan det tænkes at filen indeholder tegn der ikke er så gode. I så fald, prøv:
mysql_real_escape_string(file_get_contents(...))

Men du må godt lige smide fejlmeddelelsen du får efter du har tilføjet 'erne.
Avatar billede doomstone-dk- Nybegynder
22. oktober 2005 - 19:29 #5
Det virker fint når jeg putter mysql_real_escape_string() omkring tak
Avatar billede doomstone-dk- Nybegynder
22. oktober 2005 - 19:29 #6
Smid lige någet som et svar jaw så du kan få nogle point
Avatar billede jaw Nybegynder
22. oktober 2005 - 19:38 #7
Vil jeg da gerne :)

Men nu bliver der jo indsat \ ved farlige tegn som ' og ". Derfor skal du muligvis bruge stripslash() når du udhenter. Men du kan jo lige prøve det af.
Avatar billede coderdk Praktikant
22. oktober 2005 - 19:43 #8
Det burde ikke være nødvendigt at bruge stripslashes ved utræk, da slash'ne jo ikke bliver gemt i databasen :)
Avatar billede jaw Nybegynder
22. oktober 2005 - 19:46 #9
Nå nej, jeg fik lige blandet med addslashes :)
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