Ich habe versucht, die PHP.net-Anweisungen zum Ausführen von SELECT
Abfragen zu befolgen , bin mir jedoch nicht sicher, wie ich dies am besten tun soll.
Ich möchte SELECT
, wenn möglich, eine parametrisierte Abfrage verwenden, um die ID
in einer Tabelle zurückzugeben, in der das name
Feld mit dem Parameter übereinstimmt. Dies sollte eine zurückgeben, ID
da diese eindeutig ist.
Ich würde das dann gerne ID
für eine INSERT
in eine andere Tabelle verwenden, also muss ich feststellen, ob es erfolgreich war oder nicht.
Ich habe auch gelesen, dass Sie die Abfragen für die Wiederverwendung vorbereiten können, war mir aber nicht sicher, wie dies hilft.
$db = new PDO('mysql:dbname=your_database;host=localhost', 'junior', '444');
$statement->execute(array(':name' => "Jimbo"));
Können Sie für die Zeile den Jimbo-Teil erklären?:name
. Der Aufrufexecute
erfolgt hier mit einem assoziativen Array von Platzhalter -> Wertepaaren. In diesem Fall wird der:name
Platzhalter durch die Zeichenfolge Jimbo ersetzt. Beachten Sie, dass nicht nur ein String ersetzt wird, da der Wert entweder maskiert oder über einen anderen Kanal als die eigentliche Abfrage gesendet wird, wodurch jegliche Art von Injection-Angriffen verhindert wird.Ich habe in letzter Zeit mit PDO gearbeitet und die obige Antwort ist völlig richtig, aber ich wollte nur dokumentieren, dass das Folgende auch funktioniert.
quelle
Sie können die Methoden
bindParam
oderbindValue
verwenden, um Ihre Aussage vorzubereiten. Dies macht die Dinge auf den ersten Blick klarer, anstatt dies zu tun.$check->execute(array(':name' => $name));
Insbesondere, wenn Sie mehrere Werte / Variablen binden.Überprüfen Sie das klare, leicht lesbare Beispiel unten:
Wenn Sie mehrere Zeilen erwarten, entfernen Sie die
LIMIT 1
und ändern Sie die Abrufmethode infetchAll
:quelle
$check = $q->fetch(PDO::FETCH_ASSOC); if (!empty($check)){ $row_id = $check['id']; // do something }
?Eine kleine, vollständige Antwort finden Sie hier: Alle sind einsatzbereit:
Hier
$dbh
ist der PDO-DB-Konnektor, und basierend aufid
der Tabelle habenusers
wir dieusername
Verwendungfetch();
Ich hoffe das hilft jemandem, Viel Spaß!
quelle
fetchColumn()
, um die[0]
Notwendigkeit zu vermeiden . Denken Sie auch daran,LIMIT 1
in SQL zu verwenden.Methode 1: Verwenden Sie die PDO-Abfragemethode
Zeilenanzahl abrufen
Methode 2: Anweisungen mit Parametern
Methode 3: Bindungsparameter
Weitere Informationen finden Sie unter diesem Link
quelle
Wenn Sie Inline-Codierung auf einer einzelnen Seite verwenden und kein Hoppla verwenden, als dieses vollständige Beispiel zu verwenden, wird dies sicherlich hilfreich sein
quelle
field > 6969
sieht jedoch eher fest codiert als parametrisiert aus.