- Added a new value binding methods
This commit is contained in:
1 parent
62792e8325
commit
afe5144dc7
3 files changed
+37
-23
No files matched your search
+33
-21
@@ -82,27 +82,7 @@ class PdoObject extends PDO {
|
||||
$this->beginTransaction();
|
||||
}
|
||||
|
||||
foreach($parameters as $key => $value) {
|
||||
switch(strtolower(gettype($value))) {
|
||||
case "boolean":
|
||||
$type = Pdo::PARAM_BOOL;
|
||||
break;
|
||||
|
||||
case "integer":
|
||||
$type = Pdo::PARAM_INT;
|
||||
break;
|
||||
|
||||
case "null":
|
||||
$type = Pdo::PARAM_NULL;
|
||||
break;
|
||||
|
||||
case "string":
|
||||
default:
|
||||
$type = Pdo::PARAM_STR;
|
||||
}
|
||||
|
||||
$statement->bindValue($key, (string) $value, $type);
|
||||
}
|
||||
$this->bindVariables($statement, $parameters);
|
||||
|
||||
$this->executionStatus = $statement->execute();
|
||||
|
||||
@@ -131,4 +111,36 @@ class PdoObject extends PDO {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
protected function bindVariables(PDOStatement $statement, array &$parameters) : void
|
||||
{
|
||||
if ($parameters) {
|
||||
if (array_is_list($parameters)) {
|
||||
$parameters = array_combine(range(1, count($parameters)), array_values($parameters));
|
||||
}
|
||||
else {
|
||||
foreach ($parameters as $key => $value) {
|
||||
switch (strtolower(gettype($value))) {
|
||||
case "boolean":
|
||||
$type = Pdo::PARAM_BOOL;
|
||||
break;
|
||||
|
||||
case "integer":
|
||||
$type = Pdo::PARAM_INT;
|
||||
break;
|
||||
|
||||
case "null":
|
||||
$type = Pdo::PARAM_NULL;
|
||||
break;
|
||||
|
||||
case "string":
|
||||
default:
|
||||
$type = Pdo::PARAM_STR;
|
||||
}
|
||||
|
||||
$statement->bindValue($key, $value, $type);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user