我有如下数据库:
database name=words , table name=collection, column name=word
word
----
vivek
nidhi
neha
sidhu
hin
我需要搜索具有正则表达式条件的字符串数组:
<?php
$array=array('vivek','nidhi','neha','akshay','nitin','nid','nih','hin');
@ $db=new mysqli('localhost','root','','words');
if(mysqli_connect_errno())
{
echo 'Error:Could not connect to the database';
}
else
echo 'connected';
$db->select_db('words');
$count = 0;
foreach($array as $s)
{
if(preg_match('/^[nidhi]+$/', $s))
{
$query="select * from collection where word LIKE '%".$s."%'";
$result=$db->query($query);
if($result)
$count += $result->num_rows;
}
}
echo $count;
$db->close();
?>
我正在使用
'/^[nidhi]+$/'
正则表达式,所以我应该只获取2 ans i.e. nidhi,hin
,但是我的问题是我正在获取3 ans i.e nidhi,nid,hin
。 最佳答案
您当前正在执行的方式是匹配单词,这些单词由nidhi
中的任何字符组成。
如果只需要匹配nidhi
和hin
,则应该用管道输送(|
)单词中的单词:
if(preg_match('/^nidhi|hin$/', $s))
关于php - 使用php搜索具有正则表达式条件的数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22071472/