Làm cách nào để chạy một truy vấn đơn giản trong php minh họa?

Hàm mysql_query() trong PHP được sử dụng để thực hiện truy vấn chọn. Kể từ PHP 5. 5, hàm mysql_query() không được dùng nữa. Bây giờ nên sử dụng một trong 2 lựa chọn thay thế

  • mysqli_query()
  • PDO. __truy vấn()

Có hai chức năng MySQLi khác được sử dụng trong truy vấn chọn

  • mysqli_num_rows(mysqli_result $result). trả về số hàng
  • mysqli_fetch_assoc(mysqli_result $result). trả về hàng dưới dạng một mảng kết hợp. Mỗi khóa của mảng đại diện cho tên cột của bảng. Nó trả về NULL nếu không còn hàng nào nữa

Ví dụ truy vấn chọn MySQLi PHP

Ví dụ

đầu ra

Connected successfully
EMP ID :1 
EMP NAME : ratan 
EMP SALARY : 9000 
--------------------------------
EMP ID :2 
EMP NAME : karan 
EMP SALARY : 40000 
--------------------------------
EMP ID :3 
EMP NAME : jai 
EMP SALARY : 90000 
--------------------------------

Mặc dù thường nên sử dụng một số loại khung hoặc CMS, nhưng đôi khi một dự án đủ nhỏ để những tùy chọn đó sẽ ảnh hưởng đến quá trình phát triển. Tuy nhiên, ngay cả trong các dự án nhỏ hơn, không nên bỏ qua việc tách các yếu tố trình bày khỏi truy vấn phụ trợ. Hướng dẫn này sẽ hướng dẫn bạn cách tạo một công cụ truy vấn dựa trên lớp cơ bản cho PHP và MySQL


Bước 1. Thiết lập dự án

Điều đầu tiên chúng ta sẽ muốn làm là tạo một số tệp và thư mục cụ thể. Đây là cách tôi muốn thiết lập các dự án của mình. Tất nhiên, bạn có thể thoải mái thay đổi tên và cấu trúc theo ý thích của mình. Chỉ cần đảm bảo rằng bạn cũng thay đổi yêu cầu sau này

tạo thư mục

Chúng tôi sẽ cần một thư mục mới để chứa mọi thứ. Trong trường hợp này, tôi gọi nó là tut. Bên trong đó, tôi đặt các tệp cấu hình của mình vào một thư mục có tên là conf. Sau đó, tôi sẽ tạo một thư mục inc (viết tắt của include) và đặt một thư mục "class" bên trong thư mục đó

Thêm các tập tin

Sau đó, bên trong /conf, chúng tôi sẽ thực hiện cấu hình. php. Bên trong /inc/class chúng ta sẽ tạo DAL. php. Cuối cùng, trong thư mục gốc, chúng ta sẽ tạo chỉ mục. php

Làm cách nào để chạy một truy vấn đơn giản trong php minh họa?

DAL là viết tắt của "Lớp truy cập dữ liệu" hoặc "Liên kết truy cập dữ liệu"

Trong kiến ​​trúc đa tầng, về cơ bản, nó được sử dụng để dịch kết quả truy vấn cơ sở dữ liệu thành các đối tượng và ngược lại


Bước 2. Thiết lập cơ sở dữ liệu

Chúng ta cần tạo một cơ sở dữ liệu và điền vào đó một số dữ liệu. Đối với mục đích của hướng dẫn này, nó sẽ chỉ là cơ sở dữ liệu hai bảng với mối quan hệ một-nhiều. Điều này chỉ để chúng tôi có thể hiển thị công cụ truy vấn của mình bao gồm ít nhất một mối quan hệ

Tạo bảng

Vì vậy, trong cơ sở dữ liệu có tên "tut", hãy tạo một bảng có tên là make và một bảng có tên là models. Bảng make sẽ có các trường "id" và "name" và bảng models sẽ có các trường "id","make" và "name"

Làm cách nào để chạy một truy vấn đơn giản trong php minh họa?

Thêm một số dữ liệu

Bây giờ chúng tôi chỉ có thể thêm một số nhãn hiệu (như Ford, Chevy, v.v. ) dưới dạng dữ liệu trong bảng sản xuất và một số kiểu máy mà những nhà sản xuất đó chịu trách nhiệm

Làm cách nào để chạy một truy vấn đơn giản trong php minh họa?

Hướng dẫn này giả định rằng bạn đã có một số kiến ​​thức làm việc về cơ sở dữ liệu và SQL, vì vậy tôi sẽ không đi vào chi tiết về thiết lập quan hệ/khóa ngoại


Bước 3. Kết nối cơ sở dữ liệu

Thông thường, tôi không thích làm việc với hằng số thô trong PHP. Tôi thường sẽ định nghĩa một loạt thứ sau đó tạo một số hàm để nối vào các hằng số đó. Đối với ví dụ này, hãy để mọi thứ đơn giản và sử dụng các hằng số

Xác định các biến kết nối

Trong /conf/config của chúng tôi. php, hãy thiết lập các biến kết nối cơ sở dữ liệu của chúng tôi. Trong khi chúng tôi đang ở đó, hãy thêm vào DAL của chúng tôi. tập lệnh php

1
2

3
4
// Include DAL

5
require_once(dirname(dirname(__FILE__)) . '/inc/class/DAL.php');
_______9
1
0
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9

0

1

Thiết lập này giả định rằng bạn đang chạy MySQL trên cổng mặc định của nó

Tạo chức năng kết nối

Bây giờ, bên trong /inc/class/DAL. php, chúng ta sẽ tạo một hàm mà chúng ta sẽ sử dụng để kết nối với cơ sở dữ liệu của mình

Kết nối, cũng như tất cả các truy vấn sắp tới, sẽ nằm trong một lớp có tên DAL. Gói tất cả sự tham gia của cơ sở dữ liệu bên trong một lớp duy nhất cho phép chúng tôi thao tác các truy vấn của mình sau này mà không cần phải chạm vào các tập lệnh lớp trình bày hoặc nghiệp vụ. Ngoài ra, nó cung cấp một số mức độ không gian tên giả

Trong trường hợp của lớp này, chúng tôi sẽ thêm một hàm tạo mặc dù nó không cần làm gì cả

1
2

4
3
4

7
5

9
6
3
1
1
0
3
3
2
1
3
5
2
3
3
7
2
5
3
9
2
7
4
1
2
9
4
3

0
4
5
4
6

9
4
8
4
9
// Include DAL

0_______61
// Include DAL

2
3
3_____64___1

Lưu ý rằng phạm vi của phương thức dbconnect là riêng tư. Điều này là do chúng ta không cần kết nối với cơ sở dữ liệu từ bên ngoài DAL của mình. Thay vào đó, chúng tôi sẽ có các phương thức truy vấn công khai sẽ gọi dbconnect từ bên trong DAL. Một chút khó hiểu?


Bước 4. Tạo công cụ truy vấn chung

Để tóm tắt các truy vấn của chúng tôi để chúng tôi có thể sử dụng lại các đoạn mã ngắn, chúng tôi sẽ cần hai điều. Đầu tiên, chúng ta sẽ cần một số loại "kết quả truy vấn chung". Thứ hai, chúng tôi sẽ cần một phương thức truy vấn chung bên trong DAL của chúng tôi

Tạo lớp kết quả truy vấn chung

Mục đích của tất cả những điều này là để có thể chuyển đổi các truy vấn SQL thành các đối tượng và giảm thiểu việc sử dụng vòng lặp xấu xí while($row = mysql_fetch_array($result)). Các đối tượng dễ làm việc hơn nhiều và cho phép chúng ta sử dụng các thuộc tính thay vì các khóa mảng

Nói tóm lại, chúng tôi muốn tạo một lớp sẽ tạo tên thuộc tính một cách nhanh chóng và lưu trữ dữ liệu được liên kết với các thuộc tính đó

Chúng tôi sẽ đặt lớp này bên trong /inc/class/DAL của chúng tôi. tập lệnh php. Vì là lớp mới nên nó sẽ nằm ngoài lớp DAL

1
2
5
1
3
4
5
4
5
6
3
1
1
0
2
1
require_once(dirname(dirname(__FILE__)) . '/inc/class/DAL.php');
0
2
3
require_once(dirname(dirname(__FILE__)) . '/inc/class/DAL.php');
2
2
5
// Include DAL

1
2
7
2
9
require_once(dirname(dirname(__FILE__)) . '/inc/class/DAL.php');
7

0
require_once(dirname(dirname(__FILE__)) . '/inc/class/DAL.php');
9
4
6
6
1
4
8
6
3
// Include DAL

0
6
5
// Include DAL

2
6
7_______64
6
3_____
// Include DAL

6_____61_____5

Tạo phương thức truy vấn chung

Bây giờ, bên trong lớp DAL của chúng ta, chúng ta cần tạo một phương thức truy vấn chung sẽ biến các truy vấn CHỌN thành các đối tượng DALQueryResult

Về cơ bản, chúng tôi muốn biến từng tên trường được trả về thành một thuộc tính của đối tượng DALQueryResult

1
2
1
06
3
4
1
09
5
6
2
02
1
0
2
1
2
05
2
3
2
07
2
5
2
09
2
7
6
3
2
9
// Include DAL

1

0
2
15
4
6
2
07
4
8
2
19
// Include DAL

0
6
3
// Include DAL

2
2
23
// Include DAL

4
2
25
// Include DAL

6
2
27
// Include DAL

7
// Include DAL

1
2
30
2
31
2
32
2
33
2
34
2
35
2
36
2
37
2
38
2
39
2
40
2
41
2
42
2
43
2
44
6
3
2
46
2
47
2
48
2
49
// Include DAL

1
2
51
2
52
2
53
// Include DAL

5

Đây là một hàm riêng chấp nhận truy vấn SQL. Nó kết nối với cơ sở dữ liệu và chạy truy vấn. Sau đó, nó kiểm tra xem có kết quả nào không. Nếu không có bất kỳ kết quả nào, nó sẽ trả về null đối với truy vấn CHỌN, sai đối với các truy vấn khác. Nếu truy vấn thành công và truy vấn không phải là truy vấn CHỌN, nó sẽ trả về true. Nếu đó là CHỌN, thì nó sẽ chuyển đổi kết quả thành một mảng các đối tượng DALQueryResult. Điều này bắt chước kết quả mà người ta thường nhận được từ mysql_query


Bước 5. Viết truy vấn cụ thể

Bây giờ chúng ta đã sẵn sàng để thực sự viết một truy vấn SQL. Các truy vấn DAL phải rất cụ thể cả về tên và mục đích. Hãy tạo một cái tìm thấy tất cả các mẫu của một nhãn hiệu nhất định

Đây sẽ là phương pháp công khai đầu tiên của chúng tôi

1
____2
2
57______4
2
59
4
2
61
5
// Include DAL

5

Ở đây chúng ta chỉ viết truy vấn và trả về kết quả dưới dạng đối tượng DALQueryResult. Phương thức truy vấn chung của chúng tôi đảm nhiệm việc lặp lại và ra quyết định

DAL hoàn thành

Tại thời điểm này, DAL của chúng tôi. tập lệnh php đã hoàn thành. Nó sẽ giống như sau

1
2

4
3
4
5
1
5

9
6
5
4
1
0
2
1
3
1
2
3
2
5
require_once(dirname(dirname(__FILE__)) . '/inc/class/DAL.php');
0
2
7
require_once(dirname(dirname(__FILE__)) . '/inc/class/DAL.php');
2
2
9
// Include DAL

1

0
4
6
require_once(dirname(dirname(__FILE__)) . '/inc/class/DAL.php');
7
4
8
require_once(dirname(dirname(__FILE__)) . '/inc/class/DAL.php');
9
// Include DAL

0
2
90
// Include DAL

2
2
27
// Include DAL

4
6
5
// Include DAL

6
2
25
// Include DAL

7
2
27
2
30
// Include DAL

1
2
31
// Include DAL

5
2
33
2
34

7
2
36
2
37
3
1
2
39
3
3
2
40

12
2
42

14
2
44

16
2
46
// Include DAL

1
2
47
3
3
2
49
3
5
2
51
3
7
2
53

26

27
4
1

29
4
3

31

32

33

9

35

36

37
// Include DAL

1

39
3
3

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58______


Bước 6. Sử dụng DAL

Bây giờ, cuối cùng chúng ta hãy đi đến /index của chúng ta. php và hiển thị kết quả của chúng tôi bằng DAL. Tất cả những gì chúng ta cần làm là bao gồm /conf/config. php, khởi tạo DAL và làm điều gì đó với dữ liệu. Đây là một ví dụ

1
2

4
3
3
10
4
3
12
5
6
3
15
1
0
3
17
2
1
2
3
3
20
2
5
3
22
2
7
2
9
3
25

0
3
27
4
6
3
29
4
8
3
31
// Include DAL

0
3
3
// Include DAL

2
3
35
// Include DAL

4
3
37
// Include DAL

6
3
39
// Include DAL

7
3
41
2
30
3
43
2
31
3
45
2
33
3
47
2
34
3
49
2
36
3
51
2
37
// Include DAL

1
2
39
2
15
2
40
3
57
2
42
3
59
2
44
// Include DAL

1
2
46
// Include DAL

5
2
47

1

Như bạn có thể thấy, bây giờ chúng ta có kết quả mà chúng ta có thể gọi tên trường là thuộc tính của một đối tượng PHP


Bước 7. Tiến xa hơn một bước

Thông thường, sẽ hữu ích khi chuyển đổi DALQueryResult chung thành một đối tượng cụ thể hơn. Trong trường hợp này, bạn có thể viết các đối tượng nghiệp vụ chấp nhận DALQueryResult làm tham số hàm tạo. Sau đó, bạn chỉ cần sử dụng nó để xây dựng đối tượng mới

Đây là một ví dụ

1
2

3
4
3
71
5
3
73
6
3
75
1
0
3
77
2
1
3
3
2
3
3
81
2
5
3
83
2
7
3
85
2
9
3
87

0
// Include DAL

1
4
6
3
91
4
8
3
93
// Include DAL

0
3
95
// Include DAL

2
3
97
// Include DAL

4
3
99
// Include DAL

6
4
01
// Include DAL

7
4
03
2
30
3
99
2
31
4
07
2
33
4
09
2
34
3
99
2
36
4
13
2
37
4
15
2
39
4
17
2
40
2
27
2
42
// Include DAL

1
2
44
4
23
2
46
4
25
2
47
// Include DAL

1
2
49
// Include DAL

5
2
51
2
53

1

Sau đó, chỉ cần viết một truy vấn để trả về một mảng các đối tượng này thay vì một mảng các đối tượng DALQueryResult chung

Hãy nhớ, luôn đặt tên cho các truy vấn của bạn thật cụ thể

1
2
4
35
3
4
37
4
4
39
5
3
3
6
4
43
1
0
4
45
2
1
4
47
2
3
// Include DAL

1
2
5
2
15
2
7
4
53
2
9
4
55

0
4
57
4
6
4
59
4
8
4
61
// Include DAL

0
6
3
// Include DAL

2
4
65
// Include DAL

4
4
67
// Include DAL

6
// Include DAL

1
// Include DAL

7
// Include DAL

5

Việc xây dựng các đối tượng cụ thể có thể trở nên rất hữu ích khi cần tính toán để trích xuất dữ liệu có ý nghĩa từ các trường

Làm cách nào để thực hiện truy vấn trong PHP?

Chúng ta có thể thực hiện truy vấn đối với cơ sở dữ liệu bằng cách sử dụng phương thức mysqli_query() của PHP . cú pháp. Chúng ta có thể sử dụng phương thức mysqli_query() theo hai cách. Phong cách hướng đối tượng. phong cách thủ tục.

Làm cách nào để chạy truy vấn cơ sở dữ liệu trong PHP?

Đầu tiên, chúng tôi thiết lập một truy vấn SQL để chọn các cột id, firstname và lastname từ bảng MyGuests. Dòng mã tiếp theo chạy truy vấn và đặt dữ liệu kết quả vào một biến có tên $result. Sau đó, hàm num_rows() kiểm tra xem có nhiều hơn 0 hàng được trả về không

Làm cách nào để chạy câu lệnh SQL trong PHP?

Để chuẩn bị và thực thi một câu lệnh SQL không chấp nhận tham số đầu vào, hãy sử dụng PDO. exec hoặc PDO. phương thức truy vấn . Sử dụng PDO. exec để thực thi một câu lệnh không trả về tập kết quả nào. Sử dụng PDO. phương thức truy vấn để thực thi một câu lệnh trả về một hoặc nhiều tập kết quả.

Làm cách nào để sử dụng PHP trong truy vấn MySQL?

Nếu bạn muốn sử dụng PHP để truy vấn cơ sở dữ liệu MySQL của mình, bạn có thể làm điều đó bằng cách nhập lệnh truy vấn MySQL trong tập lệnh PHP hoặc xác định lệnh dưới dạng một biến và sử dụng . .