Sempervivum
Erfahrenes Mitglied
Der müsste natürlich auch escaped werden.
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 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 'WHERE artist REGEXP ? OR WHERE album REGEXP ? OR WHERE genre REGEXP ? ' at line 3 i
$search = 'AC/DC|Kiss|Queen';
$stmt = $pdo->prepare("
SELECT * FROM `abc_mp3_songs`
WHERE name REGEXP :exp OR
artist REGEXP :exp OR
album REGEXP :exp OR
genre REGEXP :exp OR
year REGEXP :exp
");
$stmt->execute([':exp' => $search]);
$search = 'AC/DC|Kiss|Queen';
$stmt = $pdo->prepare("
SELECT * FROM `abc_mp3_songs`
WHERE name REGEXP :exp OR
artist REGEXP :exp OR
album REGEXP :exp OR
genre REGEXP :exp OR
year REGEXP :exp
");
$stmt->execute([':exp' => $search]);
$count = $stmt->rowCount();
echo 'count: '.$count . '<br />';
$entries = $stmt->fetchAll();
In PHP 8, das ich selber benutze ist dies jedoch möglich. Es gibt eine Option für PDO, der genannte Emulation Mode, durch die man es auch in PHP < 8 ermöglichen kann:You cannot use a named parameter marker of the same name more than once in a prepared statement, unless emulation mode is on.
PDO::ATTR_EMULATE_PREPARES