在PHP中向逗号分隔的字符串添加引号

在PHP中向逗号分隔的字符串添加引号,php,string,comma,delimited,quotation-marks,Php,String,Comma,Delimited,Quotation Marks,我有一个表单,它是一个选择多输入,它发布如下值:option1、option2、option3等 如何将其转换为“选项1”、“选项2”、“选项3”等的最佳方式 目前我正在做这件事,但感觉不对 $variable=explode(",", $variable); $variable=implode("','", $variable); 之所以这样做,是因为我想在SQL查询中使用表单select multiple inputs,使用in SELECT * FROM TABLE WHERE some

我有一个表单,它是一个选择多输入,它发布如下值:
option1、option2、option3

如何将其转换为“选项1”、“选项2”、“选项3”等的最佳方式

目前我正在做这件事,但感觉不对

$variable=explode(",", $variable);
$variable=implode("','", $variable);
之所以这样做,是因为我想在SQL查询中使用表单select multiple inputs,使用in

SELECT * FROM TABLE WHERE some_column IN ('$variable')

您可以将任何代码包装到函数中,以使“感觉错误”的感觉消失。例如:

function buildSqlInClauseFromCsv($csv)
{
        return "in ('" . str_replace(",", "','", $csv) . "') ";
}

只有一种正确的方法可以为SQL转义字符串-使用数据库api提供的函数为SQL转义字符串。而
mysyl.*
提供了
mysql\u real\u escape\u string()

PDO提供了一种同时添加引号的方法:

$choices = explode(",", $variable);

foreach($choices as &$choice)
    $choice = $pdoDb->quote($choice);

$choices = implode(",", $choices);
请注意,PDO::prepare here

以下是我使用的:

WHERE  column IN ('".str_replace(",", "','", $_GET[stringlist])."')

我们知道内爆将数组转换为字符串,我们需要提供分隔符,然后提供如下所示的数组,这里我们有(coma,)作为分隔符。 内爆使用给定的分隔符打断数组中的每个元素,我用分隔符骄傲地引用了“(单引号)

 $arr = array();
    $arr[] = "raam"; 
    $arr[] = "laxman"; 
    $arr[] = "Bharat"; 
    $arr[] = "Arjun"; 
    $arr[] = "Dhavel"; 
    var_dump($arr);


    $str = "'".implode("','", $arr)."'";
    echo $str;
输出:'raam'、'laxman'、'Bharat'、'Arjun'、'Dhavel'

如果$variable=“option1、option2、option3”

您可以使用:


“从查找集合中的表格(某些列,$variable')中选择*”

如何将第一个和最后一个
?或者你把它放在一些没有显示的代码中?我编辑了SQL语句,在其中我给变量添加了引号。不要像这样构建查询字符串。使用。米加,为什么不呢?为什么PDO更好?如果使用
FIND_IN_SET()
的话,你可能会更好。我所说的“感觉错误”可能有一个痛苦的方法:)你认为这个函数会更快吗?这是一个很好的实践,但不幸的是,这并不是对所问问题的回答。@Hammerite:不推荐-这个问题意味着提问者已经在使用它了。@Asad:我觉得它为您添加了引用。编辑为使用PDO版本,确实如此。虽然这可能会回答问题,但最好在答案中加入一些文字来解释你在做什么。阅读。谢谢你的建议。太好了。如果可以在一行中完成,为什么要内爆爆炸?如何使用NOT in SET?Kiran Reddy:从NOT FIND in SET(某些列,$variable)的表格中选择*
 $arr = array();
    $arr[] = "raam"; 
    $arr[] = "laxman"; 
    $arr[] = "Bharat"; 
    $arr[] = "Arjun"; 
    $arr[] = "Dhavel"; 
    var_dump($arr);


    $str = "'".implode("','", $arr)."'";
    echo $str;