相关疑难解决方法(0)

使用MySql,PHP和ADODB在准备好的语句中参数化IN子句

我正在编写一些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));
?>
Run Code Online (Sandbox Code Playgroud)

php mysql sql adodb prepared-statement

4
推荐指数
1
解决办法
4084
查看次数

标签 统计

adodb ×1

mysql ×1

php ×1

prepared-statement ×1

sql ×1