2 namespace TYPO3\CMS\Dbal\Database;
64 $this->parameters = array();
100 $numberOfVariables = strlen($types);
101 if (func_num_args() !== $numberOfVariables + 1) {
105 $this->parameters = array(
111 for ($i = 1; $i < $numberOfVariables; $i++) {
112 $this->parameters[] = array(
113 'type' => $types{$i},
114 'value' => func_get_arg($i + 1),
138 $queryParts = $this->queryComponents[
'queryParts'];
139 $numberOfParameters = count($this->parameters);
140 for ($i = 0; $i < $numberOfParameters; $i++) {
141 $value = $this->parameters[$i][
'value'];
142 switch ($this->parameters[$i][
'type']) {
144 if ($value !== null) {
145 $value = $this->databaseConnection->fullQuoteStr($value, $this->queryComponents[
'ORIG_tableName']);
149 $value = (int)$value;
153 throw new \InvalidArgumentException(sprintf(
'Unknown type %s used for parameter %s.', $this->parameters[$i][
'type'], $i + 1), 1281859196);
156 $queryParts[$i * 2 + 1] = $value;
160 $query = implode(
'', $queryParts);
162 $limit = $this->queryComponents[
'LIMIT'];
163 if ($this->databaseConnection->runningADOdbDriver(
'postgres')) {
167 if ($splitLimit[1]) {
169 $numRows = $splitLimit[1];
170 $offset = $splitLimit[0];
171 $limit = $numRows .
' OFFSET ' . $offset;
177 if ($splitLimit[1]) {
179 $numRows = $splitLimit[1];
180 $offset = $splitLimit[0];
182 $numRows = $splitLimit[0];
185 $this->recordSet = $this->databaseConnection->handlerInstance[$this->databaseConnection->lastHandlerKey]->SelectLimit(
$query, $numRows, $offset);
186 $this->databaseConnection->lastQuery = $this->recordSet->sql;
188 $this->databaseConnection->lastQuery =
$query;
189 $this->recordSet = $this->databaseConnection->handlerInstance[$this->databaseConnection->lastHandlerKey]->_Execute($this->databaseConnection->lastQuery);
192 if ($this->recordSet !==
false) {
194 $this->recordSet->TYPO3_DBAL_handlerType =
'adodb';
211 return $this->recordSet !==
false ? $this->recordSet->_fieldobjects : array();
221 $row = $this->databaseConnection->sql_fetch_assoc($this->recordSet);
233 return $this->databaseConnection->sql_data_seek($this->recordSet, $offset);
243 return $this->databaseConnection->sql_free_result($this->recordSet);
257 $output = $this->databaseConnection->sql_errno();
260 $output = $this->databaseConnection->sql_error();
263 $output = $this->databaseConnection->sql_num_rows($this->recordSet);
266 throw new \RuntimeException(
'Cannot access property ' . $name, 1394631927);