2015-03-02 56 views
0

我有一个这样的数组:阵列逗号的条款在MySQL分隔字符串

$myarray= 'zzz,aaa,bbb' ; 

,并希望利用它在MySQL的IN子句这样的:

"... WHERE ids IN ($myarray) " // didnt work 
"... WHERE ids IN ('$myarray') " // didnt work 

错误即时得到的是该数组zzz中的第一个值表示zzz不是列名称。所以我明白,我必须用引号分开值:

$myarray= ' "zzz","aaa","bbb" ' ; 

但我没有线索做到这一点。任何帮助将非常感激。

+0

因为它真的不是一个数组,它是一个字符串。你需要用恰当的引号和逗号来“implode”。 – 2015-03-02 19:31:59

+0

最终的结果应该是这样的:'WHERE ids IN('zzz','aaa','bbb')' – 2015-03-02 19:33:17

+0

@JayBlanchard你的意思是我使用这个'ids IN implode(“,”,$ myarray); '? – 2015-03-02 19:34:11

回答

2

您需要explode()您的字符串,然后implode()它 -

$myarray = 'zzz,aaa,bbb'; 
$realArray = explode(',', $myarray); 
$stringForIn = "'" . implode("','", $realArray) . "'"; 
echo "WHERE ids IN ($stringForIn)"; 
+0

我不知道为什么id不能使用2个字符串和更多,它只适用于单个字符串 – 2015-03-02 19:46:35

+0

不知道更多关于您的数据库它将很难知道为什么它不工作。你可以用整个查询和你的表格布局@ScooterDaraf来更新原始文章吗? – 2015-03-02 19:50:28

+0

你能回应完整的查询@ScooterDaraf吗?到目前为止,我没有看到问题。 – 2015-03-02 20:01:50

2
$myarray = 'zzz,aaa,bbb'; 
$myarray = implode("','",explode(',',$myarray)); 
$query = "..... WHERE ids IN ('$myarray')"; 
+0

我不知道为什么ID不能使用2个字符串和更多,它只适用于单个字符串。 – 2015-03-02 19:46:13

+0

检查我的编辑纪子。 – 2015-03-02 19:59:11

1

试一下:

$myarray= 'zzz,aaa,bbb' ; 
echo implode '"' . ('","', explode(',', $myarray)) . '"';