我将创建一个网站,每天可以收到多达 6,000 个警报(这些警报包含最多 140 个字符,大约是 30 个单词-tokens-)。我的问题是,如果我有一个函数来验证每个令牌是否已经在数据库中,它是假的,什么都不做,如果它是插入,等等,但是对于每个单词它必须遍历整个数据库进行检查,我应该如何处理连接?每次我需要检查一个单词时打开连接是不是很糟糕?
function insertTag($tag){
$db = "test";
$user = "Eduardo";
$pass = "weaponx";
$host = "localhost";
$con = new mysqli($host, $user, $pass, $db);
$noInsert = false;
$result = $con->query("select TAG from TAGS");
$num_tags = $result->num_rows;
for($c=0; $c < $num_tags; $c++){
$row = $result->fetch_assoc();
echo "tag ". ($c+1) .": ". $row['TAG'] ."<br/>";
if ($fila['TAG'] === $tag){
echo "$tag: already exist.<br />";
$noInsert = true;
return;
}
else{
$noInsert = false;
}
}
if (!$noInsert){
$result2 = $con->query("insert into TAGS(TAG) values('$tag')");
echo "token $tag: inserted<br />";
}
}
$tags = "danger in detroit";
// insert word in the BD, only if new
for($i=0; $i < count($tags); $i++){
insertTag($tags[$i]);
}
我应该使用 mysqli 版本的持久连接吗?如果是这样怎么办?