Mysql will binary data nicht ;(

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mysql will binary data nicht ;(

    hi,

    ich habe folgendes problem. Intalliert habe ich php4.06 und MySQL 3.23.37 ... nun moechte ich images in die datenbank packen, das funktioniert auc hsoweit gut.. nur anstelle der binary_data steht dort immer nur [blob] .. woran liegt das ? muss was spezielles in mysql oder php aktiviert sein? tmp-dir etc ist alles vorhanden.

    Danke schon mal fuer die hilfe.

    achja.. hier ist der source von dem script.. vielleicht liegt er fehler ja dort.

    PHP-Code:

    tabelle sieht so aus:
    ------------------------------------------
    CREATE TABLE binary_data (
    id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    description CHAR(50),
    bin_data LONGBLOB,
    filename CHAR(50),
    filesize CHAR(50),
    filetype CHAR(50)
    ); 
    ------------------------------------------

    <?php
    include "inc.php";

    if (
    $submit) {
        
    mysql_select_db("$db2");

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

        
    $result=MYSQL_QUERY("INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) ".
            
    "VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");

        
    $idmysql_insert_id();
        print 
    "<p>This file has the following Database ID: <b>$id</b><br>";
        print 
    "server path for showing the images inside you document is: get.php?id=$id";


        
    MYSQL_CLOSE();

    } else {

        
    // else show the form to submit new data:
    ?>
        <form method="post" action="<?php echo $PHP_SELF?>" enctype="multipart/form-data">
        File Description:<br>
        <input type="text" name="form_description"  size="40">
        <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
        <br>File to upload/store in database:<br>
        <input type="file" name="form_data"  size="40">
        <p><input type="submit" name="submit" value="submit">
        </form>

    <?php

    }

    ?>

  • #2
    Ich werde aus Deiner Frage nicht ganz schlau. Nach Deinem Script zu urteilen versuchst Du das Bild in der Datenbank und nicht auf einem Temp verzeichnis zu speichern. Um das zu machen brauchst zu eine Tabellenzeile mit dem Typ blob oder longblob. Wenn Du das Bild in einem in ein Verzeichnis speichern willst musst Du einen anderen Weg gehen.
    Heavy Metal Is The Law |

    Kommentar


    • #3
      nein, ist schon richtig ich moechte image-dateien in die datenbank laden/speichern.

      .. aber inzwischen hat sich das problem von selber erledigt.. bei version 3.23.* wird anstelle des binary_codes (oder wie man das nennt) nur noch ein [blob] in der spalte angezeigt.. das kannte ich noch nicht da bei mysql 3.22.* immer der binary_code in der tabelle angezeigt worden ist. das war das eigentliche problem ..

      sorry, also es funktioniert alles. ..alles nur ein missverstaendnis gewesen.

      Kommentar


      • #4
        Ist das nicht sinnvoller die Datei in eintem Verzeichnis abzuspeichern und in der DB nur der LInk zu der Datei????

        Kommentar


        • #5
          laut dem was ich hier alles so gelesen habe ist das sicherlich sinnvoller. Bei einer recht großen Anzahl von Dateien ist diese Variante auf jeden Fall performanter.
          Heavy Metal Is The Law |

          Kommentar


          • #6
            genau!

            ich mache es aber hauptsaechlich um den ueberblick zu behalten... ich mag es nicht wenn 1000nde von Files in meinem www dir (oder subdir) herumliegen.

            Kommentar


            • #7
              Für sowas sortiert man die Bilder dann nach Art in verschiedene Verzeichnisse...

              Außerdem ist ein Verzeichnis mit 100 Bildern doch auch nicht übersichtlicher als eine Tabelle mit 100 Datensätzen ?!

              Kommentar

              Lädt...
              X