/var/www/vhosts/ihelp.ro/_OLD/vendor/cakephp/cakephp/src/Database
Edit: /var/www/vhosts/ihelp.ro/_OLD/vendor/cakephp/cakephp/src/Database/ValueBinder.php (4533B)
_bindings[$param] = compact('value', 'type') + [
'placeholder' => is_int($param) ? $param : substr($param, 1),
];
}
/**
* Creates a unique placeholder name if the token provided does not start with ":"
* otherwise, it will return the same string and internally increment the number
* of placeholders generated by this object.
*
* @param string $token string from which the placeholder will be derived from,
* if it starts with a colon, then the same string is returned
* @return string to be used as a placeholder in a query expression
*/
public function placeholder(string $token): string
{
$number = $this->_bindingsCount++;
if ($token[0] !== ':' && $token !== '?') {
$token = sprintf(':%s%s', $token, $number);
}
return $token;
}
/**
* Creates unique named placeholders for each of the passed values
* and binds them with the specified type.
*
* @param iterable $values The list of values to be bound
* @param string|int|null $type The type with which all values will be bound
* @return array with the placeholders to insert in the query
*/
public function generateManyNamed(iterable $values, $type = null): array
{
$placeholders = [];
foreach ($values as $k => $value) {
$param = $this->placeholder('c');
$this->_bindings[$param] = [
'value' => $value,
'type' => $type,
'placeholder' => substr($param, 1),
];
$placeholders[$k] = $param;
}
return $placeholders;
}
/**
* Returns all values bound to this expression object at this nesting level.
* Subexpression bound values will not be returned with this function.
*
* @return array
*/
public function bindings(): array
{
return $this->_bindings;
}
/**
* Clears any bindings that were previously registered
*
* @return void
*/
public function reset(): void
{
$this->_bindings = [];
$this->_bindingsCount = 0;
}
/**
* Resets the bindings count without clearing previously bound values
*
* @return void
*/
public function resetCount(): void
{
$this->_bindingsCount = 0;
}
/**
* Binds all the stored values in this object to the passed statement.
*
* @param \Cake\Database\StatementInterface $statement The statement to add parameters to.
* @return void
*/
public function attachTo(StatementInterface $statement): void
{
$bindings = $this->bindings();
if (empty($bindings)) {
return;
}
foreach ($bindings as $b) {
$statement->bindValue($b['placeholder'], $b['value'], $b['type']);
}
}
}