SQL を作成し、AdoDb を使用してデータベースに接続し、クエリを実行しています。パラメータ化されたクエリを使用していますが、問題が発生しました。
パラメータ化のためにAdoDb/MySqlのin_clauseに値の配列を渡す方法です。
私の問題は、「test」、「test2」、「test3」などの準備された文字列をパラメーターとして渡すと、ライブラリまたはデータベースが自動的にエスケープし、最初と最後に外部引用符が追加されるため、機能しないことです。引用符は自動的にエスケープされるため、クエリは、入力したものとは対照的に、「\'test\',\'test2\',\'test3\''を検索するため、何も返しません。
これを達成するための別の可能な方法で更新
<?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));
?>