$sql= 'select * from `name` where `author_id` IN (' . implode("','", $authors_ids) . ')';
$authors_ids
是一个数组。
答案 0 :(得分:2)
这可能是答案。
$sql = "select * from `name` where `author_id` IN ('" . implode("','", $authors_ids) . "')";
但是正如其他人在评论中提到的,为什么将其转换为字符串而不是仅仅将其作为整数? (我假设id是一个整数)。
$sql = 'select * from `name` where `author_id` IN (' . implode(",", $authors_ids) . ')';
NB。我也是在这里,假设您在将其传递给authors数组之前已对其进行了一些安全保护。
答案 1 :(得分:0)
您要在元素上添加单引号。
但是,我们需要将其添加到结尾并手动开始。
$authorsStr = "'" . implode ( "', '", $authors_ids ) . "'";
$sql= 'select * from `name` where `author_id` IN (' .$authorsStr . ')';
说,您有很多作者:
$authors = ['Bob', 'Willy', 'Williams'];
在您的情况下,sql:
select * from `name` where `author_id` IN (Bob','Willy','Williams)
这绝对是语法错误。
如果您按上述方式在单引号中手动添加和删除引号,则您的SQL将变为:
select * from `name` where `author_id` IN ('Bob','Willy','Williams')
其中不包含任何语法错误。