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数据库行查找到字符串数组php中

PHP数组不会填充mysql数据[重复]

php如何将mysql数据转为数组

PHP如何将SQL查询结果转为多维数组,并按查询行输出

PHP用数组中的字符串替换字符