Php 用explode和foreach分解字符串
我试图将一个php字符串分解为单个单词,在数据库中搜索它们,然后将结果添加到另一个数据库中 我现在有这样的字符串 “SDGCC,起立,SDGFS” 我想在login tags表中搜索像我正在使用的这些词这样的标记 从Php 用explode和foreach分解字符串,php,mysql,many-to-many,Php,Mysql,Many To Many,我试图将一个php字符串分解为单个单词,在数据库中搜索它们,然后将结果添加到另一个数据库中 我现在有这样的字符串 “SDGCC,起立,SDGFS” 我想在login tags表中搜索像我正在使用的这些词这样的标记 从logintagsWHEREtag中选择*如“%string%” 因此,每个标记都是从我尝试使用explode和foreach的字符串中提取的,但似乎没有达到预期的效果 $string=$_POST['tags'] $tags=分解(“,”$string) foreach($标记为$
logintags
WHEREtag
中选择*如“%string%”
因此,每个标记都是从我尝试使用explode和foreach的字符串中提取的,但似乎没有达到预期的效果
$string=$_POST['tags']
$tags=分解(“,”$string)
foreach($标记为$key){
$query=mysql\u query(“从dept\u logintags
WHEREtag
中选择*,如“%”“$key.”“%”;
$r=mysql\u fetch\u对象($query)
$insert=mysql\u查询(“插入简报\u登录标签
(id
,简报\u id
,logintag\u id
)值(NULL,$id',“$r->id.”)
}
我试图创建的效果是为每个标记创建标记id和简报id之间的引用
但是,它似乎只在数据库中输入了一个正确的条目。如果原始字符串中的逗号后面有空格,则explode()将返回类似[“SDGCC”、“rease”、“SDGFS”的内容 这将导致LIKE子句只匹配第一个单词。尝试使用trim(): 编辑:正如Artelius提到的,总是转义用户提交的数据以防止SQL注入。试试看
$tags = explode(',',$string);
foreach($tags as $key) {
echo '"'.$key.'"<br/>';
}
$tags=explode(',',$string);
foreach($key标记){
回显“.$key.”“
”;
}
我的猜测是,在出现和SDGFS之前,您将获得一个空间
另外,在将它们放入MySQL查询之前,请确保始终正确!!否则,有人会将受污染的输入发送到您的服务器,并对您的数据库造成严重破坏。(这称为a。)
$tags = explode(',',$string);
foreach($tags as $key) {
echo '"'.$key.'"<br/>';
}