Sparametryzowana klauzula IN w przygotowanym zestawieniu przy użyciu MySql, PHP i ADODB
Piszę trochę SQL i używam AdoDb do łączenia się z moją bazą danych i uruchamiania zapytań i tak dalej. Korzystam z zapytań sparametryzowanych i wpadłem w kłopoty.
Jest to sposób na przekazanie tablicy wartości do in_clause w AdoDb / MySql w celu parametryzacji.
Moim problemem jest to, że jeśli przekazuję przygotowany ciąg jako parametr, tj.„test”, „test2”, „test3” nie działa, ponieważ biblioteka lub auto bazy danych wymyka się jej i dodaje zewnętrzne cudzysłowy na początku i na końcu, aby wszystkie wewnętrzne cudzysłowy były następnie automatycznie unikane, dlatego zapytanie nie zwraca niczego, jak szuka'' test ',' test2 ',' test3 '' ' w przeciwieństwie do tego, co go nakarmiłem.
AKTUALIZOWANY Z INNĄ MOŻLIWĄ METODĄ DOSTOSOWANIA TEGO
<?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));
?>