mysqli查询以搜索整个数据库

时间:2018-07-04 15:46:20

标签: php mysql mysqli

我读了一些答案,说它们使用phpMyAdmin上的搜索选项在数据库的所有表中查找某个字符串。我试图使用phpMyAdmin执行的查询来查找php脚本中的字符串。由于查询花费了超过30秒的时间来执行,因此我一直收到致命错误。我使用的代码是:

df = read.delim("text.txt", header = FALSE, stringsAsFactors = FALSE, quote = "", sep = "\t")

再次需要帮助!我设法在phpmyadmin的查询生成器上提出了这个查询

$query="SELECT * FROM `classification`.`class` WHERE (CONVERT(`phylum_id` USING utf8) LIKE '%enteropneusta%' OR CONVERT(`subphylum_id` USING utf8) LIKE '%enteropneusta%' OR CONVERT(`superclass_id` USING utf8) LIKE '%enteropneusta%' OR CONVERT(`class_id` USING utf8) LIKE '%enteropneusta%' OR CONVERT(`class_name` USING utf8) LIKE '%enteropneusta%')";
$result=mysqli_query($query);
while($result){
 print_r($result);
}

这需要3-4分钟以上的时间才能运行。有什么办法可以缩短时间?

2 个答案:

答案 0 :(得分:0)

您有两种方法可以延长执行超时时间,在php.ini文件中,您可以设置max_execution_time http://php.net/manual/en/info.configuration.php

您可以在单个页面上放置

set_time_limit(240);

在顶部,以秒数为参数。

http://php.net/manual/en/function.set-time-limit.php

答案 1 :(得分:0)

所以,一直忙于自己的项目的我的教授终于设法腾出一些时间来帮助我,这就是我们使用的查询。

SELECT columnName1 as result FROM tableName1 WHERE columnName1 LIKE '%string%' 
UNION SELECT columnName2 FROM tableName2 WHERE columnName2 LIKE '%string% UNION
...
UNION
SELECT columnName12 as result FROM tableName12 WHERE columnName12 LIKE '%string%'