Tìm kiếm từ khóa PHP

Tìm kiếm một từ khóa trong bảng MySql có thể được thực hiện dễ dàng, nhưng việc tìm kiếm một từ khóa trong toàn bộ cơ sở dữ liệu luôn là một nhiệm vụ khó khăn

Hơn nữa, nó đã được coi là một nhu cầu phổ biến đối với nhiều ứng dụng web, đặc biệt đối với tìm kiếm nâng cao như chức năng

Tìm kiếm một từ khóa trong toàn bộ cơ sở dữ liệu trong PHP

Cân nhắc vấn đề này, PHP đã giới thiệu một lớp mới, có tên là “searchEntireDB”

Chỉ cần đưa tệp này vào mã của bạn để thực hiện tìm kiếm một số từ hoặc một số trong toàn bộ cơ sở dữ liệu

Đây là mã cho lớp “searchEntireDB” được lưu dưới dạng searchEntireDB. php

tìm kiếmEntireDB. php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

_dbName     = $DB;

$này - >_userName   = $userName;

$này - >_passWord   = $passWord;

$này - >_columnName    = $columnName;

$này - >_văn bản mục tiêu = $targetText;

thử {

$này - >_kết nối = new PDO['mysql: host = localhost; dbname = ' . $này - >_dbName, $this->_userName, $this->_passWord];

         $này - >_connection -> exec["SET SESSION collation_connection = 'utf8_general_ci';"];

$này - >_kết nối -> exec["SET CHARACTER SET 'utf8';"];

$này - >_kết nối -> exec["set names utf8"];

}//thử

bắt[ Ngoại lệ $e ] {

die['Lỗi kết nối. '];

}//bắt

searchEntireDB. . searchDB[];

}// __construct[]

hàm công khai searchDB[] {

$này - >_sql = 'SHOW TABLES FROM ' . $này - >_dbName;

$này - >_query = $this->_connection->query[$this->_sql];

$này - >_tableName = $this->_query->fetchAll[];

$số bàn = số lượng[$this->_tableName];

cho [ $i = 0; $i _dbName . . ". " . $này - >_tableName[$i][0];

$query2 = $this->_connection->query[$sql2];

$tìm nạp = $truy vấn2->fetchAll[];

$tempDBName = $này->_tableName[$i][0];

if [ trống[$fetch] ] {

 

$này - >_báo cáo['emptyDBs'][] = $tempDBName;

}// nếu DB này trống

khác {

$thisArrayIndexes = count[$fetch];

foreach [ $tìm nạp as $key=>$value ] {

if [ is_array[$value] ] {

 

foreach [ $giá trị as $column=>$fieldValue ] {

if [ $this - >_columnName ! = NULL ] {

 

$pos = strpos[$fieldValue,$this->_targetText];

if [ $cột == $this->_columnName && $pos !== false ] {

$this->_reports['result'][$tempDBName][$column] = $fieldValue;

$này - >_FinalResult[] = array['DBName'=>$tempDBName, 'ColumnFoundMatch'=>$column, 'searchedFor'=>$fieldValue];

}//Lớp cuối cùng

}//if [ $this->_columnName. = NULL

khác {

if [ strpos[$fieldValue,$this->_targetText] ! == false ] {

if [ is_int[$column] ] {

tiếp tục;

}//ngăn chặn bao gồm các khóa số nguyên trong báo cáo và kết quả

khác {

$này - >_báo cáo['result'][$tempDBName][$column] = $fieldValue;

$này - >_FinalResult[] = array['DBName'=>$tempDBName, 'ColumnFoundMatch'=>$column, 'searchedFor'=>$fieldValue];

}

}//Lớp cuối cùng khi Tên cột là Null

}//IF $this->_columnName [ is ]--> NULL

}//foreach [ $value as $column=>$fieldValue

}//if [ is_array[$value

}//oreach [ $fetch as $key=>$value

$này - >_báo cáo['notEmpty'][] = $tempDBName;

 

}//else

}//cho

return $this - >_reports;

return $this - >_finalResult;

}//searchDB[]

}//tìm kiếm lớpEntireDb

Và đây là mã ví dụ, cho thấy việc sử dụng lớp trên

1

2

3

4

5

6

Chủ Đề