Ich versuche herauszufinden, wie ich mein History-Skript von mysql_query() zu PDO konvertieren. Ich habe ein Formular mit 4 Eingabefeldern, die Sie beliebig auswählen können. Das bedeutet, dass 0, 1, 2, 3, 4 Felder ausgewählt werden können, abhängig davon, welche Informationen Sie erhalten möchten.Dynamische Abfragen mit PHP PDO
Ich habe versucht, db wie folgt abfragen:
$q = $db->prepare('SELECT date,
name,
action
FROM history
WHERE name = :name
AND action = :action');
$q->bindParam(':name', $Name, PDO::PARAM_STR, 20);
$q->bindParam(':action', $Action, $PDO::PARAM_STR, 20);
$q->execute();
Aber das funktioniert nicht, wenn ich keine Felder ausgewählt und wollen die ganze Geschichte gezeigt.
mit mysql_query() Ich würde dies nur tun:
mysql_query('SELECT date,
name,
action
FROM history
$Name
$Action');
Was bedeutet, wenn es keine $ Name ist oder $ Aktion sie einfach nicht in der Abfrage enthalten.
Sollte ich nur die alte Abfrage in $ q = $ db-query ('') kopieren/einfügen? Aber diese Art von besiegt den Zweck der Verwendung von PDO.
Ich habe versucht, nur ein Leerzeichen hinzuzufügen, wenn die Variable leer ist. Hat nicht funktioniert. –
Ein Leerzeichen ist ein Wert und stimmt daher nur mit Spalten überein, die diesen Wert enthalten, aber eine Spalte stimmt immer mit sich selbst überein. –
Ich habe deine Lösung in phpmyadmin versucht, funktioniert perfekt. Jetzt ist das einzige Problem, dass wenn ich bindParam sie in '' eingeschlossen werden, die es nicht eine Spalte aber ein Suchwort macht. Irgendwelche Ideen, wie man diese entfernen kann? Ich verwende PDO :: PARAM_STR, wenn ich es binde. –