我正在编写一些SQL并使用AdoDb连接到我的数据库运行查询等操作。我正在使用参数化查询,但遇到了一个问题。
是否有办法将值数组传递到AdoDb / MySql的in_clause中进行参数化?
我的问题是,如果我将准备好的字符串作为参数传递,即'test','test2','test3',则它不起作用,因为库或数据库会自动转义它并在开头和结尾添加外部引号,因此所有内部引号都被自动转义,从而查询返回空值,因为它寻找'\ 'test\',\'test2\',\'test3\''而不是我提供的内容。 使用另一种可能的方法更新
是否有办法将值数组传递到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));
?>