Параметризованный оператор IN в подготовленном выражении с использованием MySql, PHP и ADODB
Я пишу SQL и использую AdoDb для подключения к моей базе данных, выполнения запросов и так далее. Я использую параметризованные запросы и столкнулся с загадкой.
Это способ передать массив значений в in_clause в AdoDb / MySql для параметризации.
Моя проблема заключается в том, что если я передам подготовленную строку в качестве параметра, т.е.'test','test2','test3' он не работает, так как библиотека или база данных автоматически экранирует его и добавляет внешние кавычки в начале и в конце, поэтому все внутренние кавычки автоматически экранируются, поэтому запрос ничего не возвращает, поскольку ищет'\'test\',\'test2\',\'test3\'' в отличие от того, что я его кормил.
UPDATED WITH ANOTHER POSSIBLE METHOD TO ACCOMPLISH THIS
<?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));
?>