inserting CLOB absolutely requires a length argument

Co-authored-by: Austin Huang <im@austinhuang.me>
This commit is contained in:
El RIDO 2022-01-24 21:44:20 +01:00 committed by GitHub
parent 55db9426b9
commit f4438a0103
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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) { foreach ($params as $key => &$parameter) {
$position = $key + 1;
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();