Bladeren bron

inserting CLOB absolutely requires a length argument

Co-authored-by: Austin Huang <im@austinhuang.me>
El RIDO 4 jaren geleden
bovenliggende
commit
f4438a0103
1 gewijzigde bestanden met toevoegingen van 5 en 4 verwijderingen
  1. 5 4
      lib/Data/Database.php

+ 5 - 4
lib/Data/Database.php

@@ -548,12 +548,13 @@ class Database extends AbstractData
     private static function _exec($sql, array $params)
     {
         $statement = self::$_db->prepare($sql);
-        foreach ($params as $key => $parameter) {
-            $position = $key + 1;
+        foreach ($params as $key => &$parameter) {
             if (is_int($parameter)) {
-                $statement->bindValue($position, $parameter, PDO::PARAM_INT);
+                $statement->bindParam($key + 1, $parameter, PDO::PARAM_INT);
+            } elseif (strlen($parameter) >= 4000) {
+                $statement->bindParam($key + 1, $parameter, PDO::PARAM_STR, strlen($parameter));
             } else {
-                $statement->bindValue($position, $parameter);
+                $statement->bindParam($key + 1, $parameter);
             }
         }
         $result = $statement->execute();