Parametrisierte IN-Klausel in vorbereiteter Anweisung mit MySql, PHP und ADODB
Ich schreibe etwas SQL und verwende AdoDb, um eine Verbindung zu meiner Datenbank herzustellen und die Abfragen und so weiter auszuführen. Ich verwende parametrisierte Abfragen und bin auf einen Haken gestoßen.
Ist eine Möglichkeit, ein Array von Werten zur Parametrisierung an eine in_clause in AdoDb / MySql zu übergeben.
Mein Problem ist, dass wenn ich einen vorbereiteten String als Parameter übergebe, d.h.'test', 'test2', 'test3' Es funktioniert nicht, da die Bibliothek oder Datenbank es automatisch maskiert und am Anfang und Ende externe Anführungszeichen hinzufügt, sodass alle internen Anführungszeichen automatisch maskiert werden und die Abfrage nichts zurückgibt, was sie sucht"Test", "Test2", "Test3" im Gegensatz zu dem, was ich es gefüttert habe.
AKTUALISIERT MIT EINER ANDEREN MÖGLICHEN METHODE, UM DIESES ZU ERFÜLLEN
<?php
$in_clause = implode(",", $first_names);
$query = "
SELECT
mytable_id_pk
FROM
mytable
WHERE
FIND_IN_SET(mytable_fname," . $DB->Param('first_names') . ")"
$stmt = $DB->Prepare($query);
$result = $DB->Execute($stmt,array($in_clause));
?>