php mysql 查询字符串数组

Posted

技术标签:

【中文标题】php mysql 查询字符串数组【英文标题】:php mysql query strings array [duplicate] 【发布时间】:2011-02-07 22:16:09 【问题描述】:

我正在构建一个我在 mysql db 中签入的字符串。

eg:
formFields[] is an array - input1 is: string1
array_push(strings, formFields)
1st string and mysql query looks like this:
"select * from my table where id in (strings)"

formFields[] is an array - input2 is: string1, string2
array_push(strings, formFields)
2nd string and mysql query looks like this:
"select * from my table where id in (strings)"

formFields[] is an array - input3 is: string1, string2,string3
array_push(strings, formFields)
3rd string and mysql query looks like this:
"select * from my table where id in (strings)"

我想在数组中添加单引号和逗号,这样我就有了数组字符串: "select * from my table where id in ('string1', 'string2','string3')"

我尝试使用数组内爆,但仍然没有任何想法?谢谢

【问题讨论】:

【参考方案1】:
'SELECT ... WHERE id IN ("' . implode('","', $strings) . '")';

【讨论】:

效果很好!我想问一个问题,这些点到底在做什么,它们是否像“+”一样将引号与内爆结果粘合在一起?【参考方案2】:

implode() 是解决方案,但您不应忘记转义数据:

$data = array(...);
array_walk($data, function(&$elem, $key) 
    $elem = mysql_real_escape_string($elem);
);
$sql = 'SELECT ... id IN ("' . implode('", "', $data) . '");';

【讨论】:

【参考方案3】:
implode("','",$array);

【讨论】:

这不会在字符串的开头和结尾添加引号。还是谢谢! @Chocho 你也不知道串联吗?那么你迫切需要基本的 php 类。

以上是关于php mysql 查询字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

在单个 MySQL 查询中,我可以从具有主键数组的字段返回字符串数组吗

php mysql 查询字符串数组

将数组内爆为来自 mysql 查询的逗号分隔字符串

mysql中怎么存储数组?在线等!急!

mysql 5.7 json 类型 json 数组类型 普通字符串类型 10w数据 查询速度差异

mysql 存储过程,传人字符串数组