Hallo,
ich hoffe es gibt jemanden der mir helfen kann. Ich versuche mich gerade in PDO und möchte meine Webseiten umrüsten.
Dabei bin ich auf folgenden Problem gestoßen:
Ich habe bisher folgenden Code:
Edit Rolf B: Ich habe den Init von s_fahrzeugnummer und das SELECT-Statement auf mehrere Zeilen verteilt. Beim SELECT habe ich Heredoc draus gemacht; im Original war's ein double-quote String der 10 Meter lang ist. Ab PHP 7.3 kann END und ); auf eine Zeile.
$fahrzeugnummer = "101 019, 103 245, 120 001, 481 100";
$s_fahrzeugnummer = (strstr($fahrzeugnummer,","))
? str_replace(",","%' OR `fahrzeugnummer` LIKE '%",$fahrzeugnummer)
: $fahrzeugnummer;
$zusatz = $db_rev->prepare(<<<END
SELECT `datensatz_fahrzeug`, `fahrzeugnummer`, `belegung`,
`betreiberbezeichnung`, `bahnverwaltung`, `fahrzeugnutzer`,
`letztes_update`, `tabellennummer`
FROM `tab_fahrzeuge`
WHERE `fahrzeugnummer` LIKE :s_fahrzeugnummer
UNION
SELECT `datensatz_fahrzeug`, `ex_nummer`, `belegung`,
`betreiberbezeichnung`, `bahnverwaltung`, `fahrzeugnutzer`,
`letztes_update`, `tabellennummer`
FROM `tab_exnummern`
WHERE `ex_nummer` LIKE :s_fahrzeugnummer
UNION
SELECT `datensatz_fahrzeug`, `fahrzeugnummer`, `belegung`,
`betreiberbezeichnung`, `bahnverwaltung`, `fahrzeugnutzer`,
`letztes_update`, `tabellennummer`
FROM `tab_vermietung`
WHERE `fahrzeugnummer` LIKE :s_fahrzeugnummer
ORDER BY `tabellennummer`, `fahrzeugnummer`
END
);
$zusatz->execute(array('s_fahrzeugnummer' => "%$s_fahrzeugnummer%"));
$max_fahrzeuge = $zusatz->rowCount();
echo $max_fahrzeuge;
Damit kann ich im Eingabefeld eingeben: 101 019, 103 245, 120 001, 481 100 Er sucht dann die vier Fahrzeuge (um die geht es auf meiner Webseite) raus.
In PDO kommt 0 Datensätze raus!
Ich verstehe das nicht. Leider habe ich auch keine Möglichkeit gefunden, anzeigen zulassen was bei execute aus den Platzhaltern wird.
Wenn ich hier falsch bin, bitte ich um Nachricht und Löschung meines Beitrages.
Gruß, Michael