[TYPO3-german] prepared statements in Extbase TYPO3 7.6

Alexander Künzl alexanderkuenzl at yahoo.de
Wed Apr 6 18:13:16 CEST 2016


Guten Abend an die Liste,

ich habe eine Frage zu Extbase und hoffe, jemand kann mir helfen: Ich 
möchte eine direkte SQL-Abfrage schreiben, da die Repository-Methoden in 
diesem Fall zu kurz greifen.

Ich möchte die Abfrage als prepared statement abschicken, etwa so (nur 
zur Veranschaulichung des Problems, die eigentliche Abfrage ist komplexer):

$suchString = $uebergebenerSuchparameter;
$query = $this->createQuery();
$query->getQuerySettings()->usePreparedStatement(TRUE);
$sql =  'SELECT DISTINCT tabelle.* from tabelle as objekt WHERE 
objekt.name LIKE ?'
$query->statement($sql, array("%$suchString%"));
return $query->execute();

Die Verarbeitung des Fragezeichens als Platzhalter funktionert so aber 
leider nicht; Ich erhalte einen SQL-Fehler:

You have an error in your SQL syntax; check the manual that corresponds 
to your MySQL server version for the right syntax to use near '?

Anmerkungen:

1. Die SQL-Syntax (mit Ausnahme des nicht verarbeiteten Fragezeichens) 
ist bei allen getesteten Abfragen korrekt: Wenn ich die Variable und die 
Begrenzer direkt in die Abfrage schreibe, funktioniert alles.

2. Unter TYPO3 6.2 funktioniert die Abfrage über das prepared statement 
noch.

3. Ich habe gesehen, dass ab Version 7.0 für das Binden von Parametern 
prepared statements verwendet werden müssen. Heißt dass, dass ich das 
entsprechende Kernobjekt selbst bauen muss?

Vielen Dank schonmal fürs Ansehen und einen schönen Abend aus Franken,

Mit freundlichen Grüßen

Alexander Künzl


More information about the TYPO3-german mailing list