Sfoglia il codice sorgente

inserting CLOB absolutely requires a length argument

Co-authored-by: Austin Huang <im@austinhuang.me>
El RIDO 4 anni fa
parent
commit
f4438a0103
1 ha cambiato i file con 5 aggiunte e 4 eliminazioni
  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)
     private static function _exec($sql, array $params)
     {
     {
         $statement = self::$_db->prepare($sql);
         $statement = self::$_db->prepare($sql);
-        foreach ($params as $key => $parameter) {
-            $position = $key + 1;
+        foreach ($params as $key => &$parameter) {
             if (is_int($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 {
             } else {
-                $statement->bindValue($position, $parameter);
+                $statement->bindParam($key + 1, $parameter);
             }
             }
         }
         }
         $result = $statement->execute();
         $result = $statement->execute();