Hallo Michael,
das Grundproblem besteht weiter: in s_fahrzeugnummer befindet sich SQL Syntax, von der Du erwartest, dass sie als SQL ausgeführt wird.
Das von Dir gezeigte phpmyAdmin-SQL ist nicht äquivalent zu dem von Deinem PHP abgeschickten SQL. Was Du da versuchst, ist SQL Injektion, und genau die wird von Query-Parametern verhindert.
Wenn Du SQL Injektion haben willst, musst Du das im SQL Statement tun, nicht in den Query-Parametern.
Funktionierende SQL Injektion:
$x = "123%' OR dings LIKE '%456";
$sql = "SELECT a,b,c FROM tab WHERE dings LIKE '%$x%'";
$statement = $db->query($sql);
Ausgeführt wird
SELECT a,b,c
FROM tab
WHERE dings LIKE '%123%' OR dings LIKE '%456%'
Dein Versuch, mit SQL Parametern:
$x = "123' OR dings LIKE '%456";
$sql = "SELECT a,b,c FROM tab WHERE dings LIKE :x_var";
$statement = $db->prepare($sql);
$statement->execute([ "x_var" => "%$x%" ]);
Ausgeführt wird
SELECT a,b,c
FROM tab
WHERE dings LIKE '%123%\' OR dings LIKE \'%456%'
Siehst Du den Unterschied?
(Ich speichere das erstmal um zu sehen ob das Forum das brauchbar highlighted, es geht noch weiter)
Rolf
--
sumpsi - posui - obstruxi
sumpsi - posui - obstruxi