Do not prepare statements for bulk operations
authorAlexander Ebert <ebert@woltlab.com>
Thu, 10 May 2018 12:03:13 +0000 (14:03 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Thu, 10 May 2018 12:03:13 +0000 (14:03 +0200)
wcfsetup/install/files/lib/system/message/embedded/object/MessageEmbeddedObjectManager.class.php

index fd92395497cae8a89a8f1d87174646ae468ac589..681f9db8fdd73c90ad5552579b96dc57299da32e 100644 (file)
@@ -90,14 +90,16 @@ class MessageEmbeddedObjectManager extends SingletonFactory {
                        $this->removeObjects($messageObjectType, [$messageID]);
                }
                
-               // prepare statement
-               $sql = "INSERT INTO     wcf".WCF_N."_message_embedded_object
-                                       (messageObjectTypeID, messageID, embeddedObjectTypeID, embeddedObjectID)
-                       VALUES          (?, ?, ?, ?)";
-               $statement = WCF::getDB()->prepareStatement($sql);
-               
-               // call embedded object handlers
-               if (!$isBulk) WCF::getDB()->beginTransaction();
+               $statement = null;
+               if (!$isBulk) {
+                       // prepare statement
+                       $sql = "INSERT INTO     wcf".WCF_N."_message_embedded_object
+                                               (messageObjectTypeID, messageID, embeddedObjectTypeID, embeddedObjectID)
+                               VALUES          (?, ?, ?, ?)";
+                       $statement = WCF::getDB()->prepareStatement($sql);
+                       
+                       WCF::getDB()->beginTransaction();
+               }
                
                $embeddedData = $htmlInputProcessor->getEmbeddedContent();
                $returnValue = false;
@@ -120,7 +122,10 @@ class MessageEmbeddedObjectManager extends SingletonFactory {
                                $returnValue = true;
                        }
                }
-               if (!$isBulk) WCF::getDB()->commitTransaction();
+               
+               if (!$isBulk) {
+                       WCF::getDB()->commitTransaction();
+               }
                
                return $returnValue;
        }