我正在用PHP加密和解密我的MySQL聯繫人表。這一切都很好,但是我正在製作數據網格,以便它有一個搜索框,可以在所有列上進行全文搜索。現在的問題是搜索是針對加密數據而不是原始數據進行的。所以我不得不在PHP中進行全文搜索。這需要我遍歷每一行,但我仍然這樣做,因爲我需要解密它。在關聯數組上的PHP全文搜索
我的問題在於我的代碼執行全文搜索的速度,我想知道是否有更好,更快的方法來執行此操作?
$result = Some PDO query that does a PDO::FETCH_ASSOC, query has about 8 columns
$searchPhrase = strtolower($searchPhrase);
$aes = new AES(DATABASE_KEY, DATABASE_IV);
$count = count($result);
for($ii = 0; $ii <$count; $ii++)
{
$result[$ii]["ContactName"] = $aes->Decrypt($result[$ii]["ContactName"]);
$result[$ii]["ContactDescription"] = $aes->Decrypt($result[$ii]["ContactDescription"]);
/*More encrypted columns*/
if (!empty($searchPhrase)) //Only do search when search phrase not empty
{
$filterRow = array_slice($result[$ii], 3); // Do not take first 3 columns
$data = strtolower(implode("", $filterRow)); //Flaten row as one string, all lowercase
if (strpos($data, $searchPhrase) === FALSE) //Now doing elimentation from array if not match
unset($result[$ii]);
}
}
嗯,我仍然會下降,你所提供的兔子洞。看起來非常有趣,會更多地考慮它。 –