我在 PHP 中有以下数组:3D, 玛丹娜, 电影, 情报, 大独裁
我的 SQL 查询如下:
$query = "SELECT * FROM news
WHERE tagkey IN (3D, 瑪丹娜, 電影, 情報, 大獨裁)";
但是这个查询给出了一个错误:查询失败
。
我需要添加撇号,但我该如何更改
`3D, 瑪丹娜, 電影, 情報, 大獨裁`
到
`'3D', '瑪丹娜', '電影', '情報', '大獨裁'`
?
所以查询应该是这样的:
$query = "select * FROM news WHERE tagkey IN ('3D','瑪丹娜','電影','情報','大獨裁') ";
我当前的 PHP 代码:
$tag_array = array($line["tagkey"]);
$tag_str = implode(" ", array($line["tagkey"]));
echo $tag_str;
$query = "select * FROM news WHERE tagkey IN ($tag_str)";
更新 2012/06/15 **抱歉:现在我改变了我的虚拟主机。这个脚本错误..
这个:
警告:array_map() [function.array-map]: 第一个参数,
'apply_quotes',应该是 NULL 或一个有效的回调
$list = explode(',', $line["tagkey"]);
$list = array_map('apply_quotes', $list);
警告:join() [function.join]:参数错误。在
$query = "select * FROM news
WHERE tagkey IN (" . join(',', $list) . ") ";
最佳答案
array_map()
允许您对数组的每个元素调用一个函数。
$tag_array = array_map ( function($var) {
return "'" . mysql_real_escape_string($var) . "'";
}, $tag_array );
关于php - 如何在 MySQL IN 语句中的内爆数组中的字符串周围添加撇号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10912185/