Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] File als Blob in die DB speichern

Einklappen

Neue Werbung 2019

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

  • [Erledigt] File als Blob in die DB speichern

    Hallo allerseits,

    ich hab da ein Problem welches ich auch nach 2h googeln nicht lösen konnte.
    Darum dachte ich, frag ich hier ob mir jemand helfen kann.

    Also ich möchte gerne eine Datei als Blob in meine MySql Datenbak speichern.
    Und das mit prepeard statements.

    Nun wenn ich das File so speichere dann funktioniert das ohne Probleme(ohne prepeard statement)

    PHP-Code:
    function saveBackup($userID$file$time
    {
        include (
    'conf/config.inc.php');
        
        
    deleteBackup($userID);
        
    $sql "INSERT INTO backup (userid, file, backuptime) VALUES ('$userID', '$file', 'hallo')";

        if(
    $objDb->query($sql))
        {
            if(
    $objDb->affected_rows 0)
            {
                
    $objDb->close();
                return 
    true;
            }
            else
            {
                
    $objDb->close();
                return 
    false;
            }
        }
        else
        {
            die(
    "Could not prepare SQL statement: $sql");
        }

    Wenn ich das gleiche mit Prepeardstatement machen will, dann wird zwar das File gespeichert
    aber es ist leer. Also Size ist 0Kb.

    PHP-Code:
    function saveBackup($userID$file$time)
    {
        include (
    'conf/config.inc.php');

        
    $sql "INSERT INTO backup (userid, file, backuptime) VALUES (?, ?, ?)";
        
        if(
    $stmt $objDb->prepare($sql))
        {
            
    $stmt->bind_param("ibs"$userID$file$time);
            
    $stmt->execute();

            if(
    $stmt->affected_rows 0)
            {
                
    $stmt->close();
                
    $objDb->close();
                return 
    true;
            }
            else
            {
                
    $stmt->close();
                
    $objDb->close();
                return 
    false;
            }
        }
        else
        {
            die(
    "Could not prepare SQL statement: $sql");
        }

    Kann mir jemand sagen woran das liegt?

    Danke im voraus.


  • #2
    PHP-Code:
    echo mysqli->error(); // ? 
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Zitat von nikosch Beitrag anzeigen
      PHP-Code:
      echo mysqli->error(); // ? 
      Es gibt eben kein Error. Die Datei wird gespeichert aber ist Leer.
      Es handelt sich übrigens um eine Comprimierte Datei.

      Kann es sein das diese bei prepeard irgendwie kaputt geht?

      Kommentar


      • #4
        Und wenn du die Datei statt als Blob als String übergibst?

        "I've found that when binding my BLOB parameter, I need to pass it as a STRING, otherwise it's truncated to zero length in my table."

        PHP: mysqli_stmt::bind_param - Manual

        Wäre aber iwie unschön O.o
        Und wird vermutlich auch nicht bei größeren Blobs funktionieren?
        Jedenfalls scheinst du nicht allein mit dem Problem zu sein...

        Kommentar


        • #5
          Zitat von Griffith Beitrag anzeigen
          Und wenn du die Datei statt als Blob als String übergibst?

          "I've found that when binding my BLOB parameter, I need to pass it as a STRING, otherwise it's truncated to zero length in my table."

          PHP: mysqli_stmt::bind_param - Manual

          Wäre aber iwie unschön O.o
          Und wird vermutlich auch nicht bei größeren Blobs funktionieren?
          Jedenfalls scheinst du nicht allein mit dem Problem zu sein...
          @Griffith
          Danke für die Antwort. Ja das mit dem String hat ich auch schon probiert und das ging.
          Aber es macht irgendwie mein Blob kaputt weil ich es dann nicht weiter verarbeiten kann. Und wie du sagst, ist es keine wirklich schöne Lösung.

          Kommentar


          • #6
            So ich hab jetzt eine Lösung dazu gefunden und zwar auf diese Seite:

            Oswald@Work - PHP's MySQLi extension: Storing and retrieving blobs

            Danke für eure Antworten!

            Kommentar


            • #7
              [del]

              Kommentar

              Lädt...
              X