Bitte um Hilfe bei PDO lob update

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

  • Bitte um Hilfe bei PDO lob update

    Hi zusammen,
    habe ein problem beim update eines images in der Datenbank. Der insert funktioniert ohne Probleme. Was mache ich nur falsch? Im Netz finde ich so ziemlich alles nur nichts zum Update!!!

    Ich hoffe Ihr könnt mir helfen.
    Danke

    Hier mal ein Auszug aus dem Code:
    Das Bild wird wie folgt eingelesen:

    Code:
        $imgfp        = fopen($_FILES['userfile']['tmp_name'][$ind], 'rb');

    Code:
    if($stmt->rowCount() > 0)
            {
                /*** prepare the sql ***/
                $stmt = $dbh->prepare("UPDATE users_images
                SET ? ,?, ?, ?, ?, ?, ?, ?, ?, ? WHERE userID = '".$_SESSION['userID']."' AND image_id = '".$ind."'");
                $stmt->bindParam(1, $_SESSION['userID'], PDO::PARAM_INT);
                $stmt->bindParam(2, $ind, PDO::PARAM_INT);
                $stmt->bindParam(3, $image_type);
                $stmt->bindParam(4, $data, PDO::PARAM_LOB);
                $stmt->bindParam(5, $image_height, PDO::PARAM_INT);
                $stmt->bindParam(6, $image_width,  PDO::PARAM_INT);
                $stmt->bindParam(7, $image_thumb,  PDO::PARAM_LOB);
                $stmt->bindParam(8, $thumb_height, PDO::PARAM_INT);
                $stmt->bindParam(9, $thumb_width,  PDO::PARAM_INT);
                $stmt->bindParam(10, $image_name);
    
                /*** execute the query ***/
                $stmt->execute();;
            } else {
    
            /*** prepare the sql ***/
            $stmt = $dbh->prepare("INSERT INTO users_images (userID, image_id, image_type ,image, image_height, image_width, image_thumb, thumb_height, thumb_width, image_name)
            VALUES (? ,?, ?, ?, ?, ?, ?, ?, ?, ?)");
            $stmt->bindParam(1, $_SESSION['userID'], PDO::PARAM_INT);
            $stmt->bindParam(2, $ind, PDO::PARAM_INT);
            $stmt->bindParam(3, $image_type);
            $stmt->bindParam(4, $imgfp, PDO::PARAM_LOB);
            $stmt->bindParam(5, $image_height, PDO::PARAM_INT);
            $stmt->bindParam(6, $image_width,  PDO::PARAM_INT);
            $stmt->bindParam(7, $image_thumb,  PDO::PARAM_LOB);
            $stmt->bindParam(8, $thumb_height, PDO::PARAM_INT);
            $stmt->bindParam(9, $thumb_width,  PDO::PARAM_INT);
            $stmt->bindParam(10, $image_name);
    
            /*** execute the query ***/
            $stmt->execute();;

  • #2
    Hallo,

    dein UPDATE-Statement ist ungültig. Beim Update musst du jede Spalte einzeln benennen, sonst weiß die DB nicht, welcher Platzhalter zu welcher Spalte gehört (im Gegensatz zu einem vollständigen Insert, wo die Spaltenreihenfolge explizit angegeben ist).

    Ein Update sollte also beispielhaft so aussehen:

    Code:
    UPDATE tabelle SET spalte1 = ?, spalte2 = ? WHERE spalte3 = ?
    Eigentlich steht das so auch überall im Netz, aber ein Blick ins Handbuch hätte in diesem Falle auch schon gereicht

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      auf ein neues

      Ohh besten Dank für Deine Hilfe,

      das Statement scheint jetzt OK dennoch gibt es scheinbar ein Problem mit dem Bild....

      SQLSTATE[42000]: Syntax error or access violation: 1064 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 'id #19, image_height = 500, image_width = 355, image_thumb = ???' at line 1

      Das Statement sieht wie folgt aus:

      UPDATE users_images SET userID = 14, image_id = 0, image_type = image/jpeg, image = Resource id #19, image_height = 120, image_width = 80, image_thumb = ����JFIF��>CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), default quality
      ��C 
      
       $.' ",#(7),01444'9=82<.342��C 

      2!!22222222222222222222222222222222222222222222222222��F."��
      ���}!1AQa"q2���#B��R��$3br�
      %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�������������������������������������������������� �������������������������
      ���w!1AQaq"2�B���� #3R�br�
      $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz����������������������������������������������� ��������������������������� ?�ݴ�dA� R�'�PK�Ԛ�g� -�K�i��w� �q�V9z�(�B�oG@{��]H �#���u ��#9�yv��4�j���5�<r�g�=�*�A,a�� 4�ѩ<���8��Q��s�d��ݧ|���Z��h\!
      ���4V�V��r�L7���$Sm��+��a�@���- [�$��9 ��=��dj?g�PŊ|�m��ֹ�Ŧ�4j0�<��z����p�o�~p�w���ژ݈g�46����O����Z��j��T�,˷>��kf�(k �,��HH��'�
      ����$
      $.&p�
      �~�֝żWP��]�z���֐Y�c�6);��<�4=a_)]VC��OӨ���N+"���`r��S�8�y� /`[���i�N.-c���{�S]�Kx�V���=^� ���d�X��3@h���
      Z��lY�!����CKJ���pO)�HT?�ĕ� �Ua}���0hMHE
      �� R�4Q@�F�En4��e�3E��, thumb_height = 70, thumb_width = 46.6666666667, image_name =no_avatar.jpg WHERE userID =14 AND image_id =0

      Ich denke er kommt warum auch immer nicht mit den Bildern klar. Komischerweise funktioniert es ja beim insert.

      Ich komme einfach nicht dahinter.
      Ohh Sorry bin leider noch Anfänger

      an alle die mir helfen.
      Liebe Grüße

      Kommentar

      Lädt...
      X