Avatar billede Slettet bruger
29. marts 2000 - 16:02 Der er 6 kommentarer og
1 løsning

Binære data i mysql db på win NT server.

Hey. Jeg benytter PHP til at gemme et billede i en mysql database, i et longblob felt.

Dette går fint, når mysql serveren kører linux. Men det giver problemet i NT. Kun de 4 første tegn eller sådan gemmes. Det er som om serveren af en eller anden grund skipper filen.

Jeg får ingen fejlmeddelelser.

Hvad kan dette skyldes ? Og hvordan løser jeg problemet ?
Avatar billede tcg Nybegynder
02. april 2000 - 22:14 #1
kan du ikke vise den bid af din kode der gør det ?
Avatar billede Slettet bruger
02. april 2000 - 23:15 #2
Her er formen :

<form method="post" action="upload.phtml" enctype="multipart/form-data">
<input type="text" name="form_description"  size="40">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="file" name="form_data"  size="40">
<input type="submit" name="submit" value="submit">

Her er det centrale i PHP koden :

$data = addslashes(fread(fopen($form_data,  "r"), filesize($form_data)));

$result=MYSQL_QUERY( "INSERT INTO pictures (Picture_Data) VALUES ('$data')");
Avatar billede tcg Nybegynder
02. april 2000 - 23:25 #3
tjek følgende .:
se om du kan få fat i logfilen til MySQL serveren , se om du kan fikse din query ud og se om det er det rigtige der bliver sendt.

Tjek at filesize($form_data) returnere den korrekte værdi

tjek indholdet af $data efter du har proppet din data ind i den, sagt på en anden måde, følg dataen hele vejen til databasen og se hvor linux/NT afviger.
Avatar billede Slettet bruger
02. april 2000 - 23:36 #4
1 ) Query ér korrekt.

2 ) Filesize retunerer korrekt.

3 ) Indholdet af $data ér korrekt.

Avatar billede steffen Nybegynder
27. april 2000 - 19:38 #5
Check lige hvor stort dit BLOB felt er. Standard i ikke-linux er vist (1) - som svarer præcist til 4 bytes.

Så når du definerer din database (CREATE-statementsene) - så sørg for, at der står størrelser på alle BLOB felterne - ellers bliver de sat til (1) :-)
Avatar billede steffen Nybegynder
02. juli 2000 - 23:53 #6
mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O max_allowed_packet=24M
Avatar billede Slettet bruger
07. december 2000 - 17:38 #7
Server probs.

Been there done that.
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