获取某数据库中含有某字段的所有表的脚本

 2023-09-13 阅读 14 评论 0

摘要:2019独角兽企业重金招聘Python工程师标准>>> 背景 在某些情况下,比如业务重构时,需要对涉及到某字段的代码进行修改,则需要获取到某数据库中所有含有该字段的数据表. 代码 <?php$dbhost = 'ip'; $dbusername = '

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

背景

在某些情况下,比如业务重构时,需要对涉及到某字段的代码进行修改,则需要获取到某数据库中所有含有该字段的数据表.

代码

<?php$dbhost = 'ip';
$dbusername = 'username';
$dbpass = 'password';
$dbname = 'databasename';$db_connect = new mysqli($dbhost, $dbusername, $dbpass, $dbname);// 获取数据库中各个表的基础信息
$sql = 'SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.`TABLES` WHERE TABLE_SCHEMA="'.$dbname.'"';$result = $db_connect->query($sql);while ($row = mysqli_fetch_assoc($result)) {$tables[] = $row;
}//取出所有表的名称
$tables = array_column($tables, 'TABLE_NAME');//要查询的字段名
$name = 'abc';
//含有该字段名的表名称数组
$needs = array();
// 对各个表做遍历,获取含有该字段的表名称
foreach ($tables as $table) {$sql = 'select '.$name.' from '.$table;if ($result = $db_connect->query($sql)) {$needs[] = $table;}
}return $needs;

嵌套查询sql语句?测试

以某数据库和某字段为样例进行测试,返回结果如下

/opt/wwwroot/test/dbcolume.php:34:
array(32) {[0] =>string(20) "account_organization"[1] =>string(21) "app_recruit_interview"[2] =>string(26) "campus_recruit_interviewer"[3] =>string(18) "campus_recruit_log"[4] =>string(35) "campus_recruit_site_address_element"[5] =>string(33) "campus_recruit_site_group_element"[6] =>string(24) "campus_recruit_site_plan"[7] =>string(32) "campus_recruit_site_time_element"[8] =>string(8) "employee"[9] =>string(34) "interviewer_remark_template_config"[10] =>string(18) "operation_integral"[11] =>string(17) "position_projects"[12] =>string(11) "preemployee"[13] =>string(7) "recruit"[14] =>string(19) "recruit_config_lock"[15] =>string(17) "recruit_interview"[16] =>string(25) "recruit_interview_history"[17] =>string(24) "recruit_interview_status"[18] =>string(12) "recruit_lock"[19] =>string(13) "recruit_offer"[20] =>string(15) "recruit_process"[21] =>string(21) "recruit_process_alias"[22] =>string(14) "recruit_rounds"[23] =>string(16) "recruitflow_step"[24] =>string(24) "recruitflow_step_history"[25] =>string(23) "resume_background_check"[26] =>string(23) "resume_candidate_upload"[27] =>string(13) "resume_hiring"[28] =>string(25) "resume_remuneration_proof"[29] =>string(10) "statistics"[30] =>string(19) "statistics_archives"[31] =>string(12) "vanke_reward"
}

转载于:https://my.oschina.net/u/3412738/blog/1548751

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/54670.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息