Project

General

Profile

Actions

Bug #80820

closed

Extbase - Wrong size of QueryResult object after make statement

Added by Miguel Ángel Molina Hernández over 7 years ago. Updated almost 6 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Extbase
Target version:
-
Start date:
2017-04-12
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
7
PHP Version:
5.6
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

Hi,

I used today the method '\TYPO3\CMS\Extbase\Persistence\Generic\Query::statement()' my first time. I didn't have troubles with another methods of the queries of Extbase. But I will try to explain my enviroment.

I have to use this statement, because I need to user the REGEXP in some queries. I tried first:

$query->statement(
    "SELECT * FROM tx_myext_mytable WHERE schluessel != ? AND schluessel REGEXP ?", 
    array($key, '[1-9]{3}' . substr($key, 3, 5) . '.*')
);

,but it returns an error like this:

Uncaught TYPO3 Exception
#1247602160: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '? AND schluessel REGEXP ?' at line 1

So, I tried to make it in another way:

 $sql = "SELECT * FROM tx_myext_mytable " 
                    . "WHERE schluessel != ? AND schluessel REGEXP ?";

$query->statement(
    $this->objectManager->get(\TYPO3\CMS\Core\Database\PreparedStatement::class, $sql, 'tx_stala_domain_model_gebiet'), 
    array($key, '[1-9]{3}' . substr($key, 3, 5) . '.*')
);        

now it works but not at all. Also, 'tx_myext_mytable' contents 3060 elements, the result with specifics parameter for this query ($key) returns the corrects elements in an object of type '\TYPO3\CMS\Extbase\Persistence\Generic\Query\QueryResult', but the size of the object is wrong, a few examples of the output from the Extbase Debugger

TYPO3\CMS\Extbase\Persistence\Generic\QueryResultprototypeobject (3013 items)
   0 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=1003, pid=97)
   1 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=1004, pid=97)
   2 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=1005, pid=97)
   3 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=1006, pid=97)
   4 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=1007, pid=97)
   5 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=1008, pid=97)
   6 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=1009, pid=97)
   7 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=1010, pid=97)
   8 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=1011, pid=97)
   9 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=1012, pid=97)
   10 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=1013, pid=97)
   11 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=1014, pid=97)
TYPO3\CMS\Extbase\Persistence\Generic\QueryResult prototype object (3013 items)
   0 => Vendor\Myext\Domain\Model\VerbandsfreieGemeinde prototype persistent entity (uid=913, pid=95)
   1 => Vendor\Myext\Domain\Model\VerbandsfreieGemeinde prototype persistent entity (uid=920, pid=95)
   2 => Vendor\Myext\Domain\Model\Verbandsgemeinde prototype persistent entity (uid=927, pid=96)
   3 => Vendor\Myext\Domain\Model\Verbandsgemeinde prototype persistent entity (uid=932, pid=96)
   4 => Vendor\Myext\Domain\Model\VerbandsfreieGemeinde prototype persistent entity (uid=952, pid=95)
   5 => Vendor\Myext\Domain\Model\VerbandsfreieGemeinde prototype persistent entity (uid=963, pid=95)
   6 => Vendor\Myext\Domain\Model\Verbandsgemeinde prototype persistent entity (uid=964, pid=96)
   7 => Vendor\Myext\Domain\Model\Verbandsgemeinde prototype persistent entity (uid=1002, pid=96)
TYPO3\CMS\Extbase\Persistence\Generic\QueryResultprototypeobject (3013 items)
   0 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=928, pid=97)
   1 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=929, pid=97)
   2 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=930, pid=97)
   3 => Vendor\Myext\Domain\Model\Gemeinde prototype persistent entity (uid=931, pid=97)

Do i make something wrong? Or Is it a bug of the system?

Thank you


Related issues 1 (1 open0 closed)

Related to TYPO3 Core - Bug #80464: count() not working correctly in Extbase when using custom statementNew2017-03-27

Actions
Actions

Also available in: Atom PDF