在数组中添加单引号:这是我的代码

时间:2019-03-12 09:22:52

标签: php arrays implode

$sql= 'select * from `name` where `author_id` IN (' . implode("','", $authors_ids) . ')';

$authors_ids是一个数组。

2 个答案:

答案 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')

其中不包含任何语法错误。