Bài giảng Lập trình web động với PHP/MySQL: Phần 2 - Tống Phước Khải (tổng hợp & biên dịch)

47 17 0
Bài giảng Lập trình web động với PHP/MySQL: Phần 2 - Tống Phước Khải (tổng hợp & biên dịch)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Lập trình web động với PHP/MySQL - Phần 2: Phương pháp truy xuất cơ sở dữ liệu MySQL. Phần này trình bày những nội dung chính: Từ Command Prompt, bằng lệnh PHP, dùng phpMyadmin. Mời các bạn cùng tham khảo.

LẬP TRÌNH WEB ĐỘNG VỚI PHP / MySQL ™ GUESTBOOK ™ CATALOG ™ FORUM ™ SHOPPING CART PHẦN Tống Phước Khải (tổng hợp& biên dịch) Phương pháp truy xuất CSDL MySQL 1- Từ Command Prompt 2- Bằng lệnh PHP 3- Dùng phpMyadmin Để hiểu chương cách rõ ràng, trước tiên bạn cần phải có số kiến thức Cơ Sở Dữ Liệu quan hệ Nếu bạn học qua khoá MS Access chương trình đào tạo chứng B chẳng hạn hẳn nhiên bạn tiếp tục Còn bạn chưa biết bàn đến phần Phụ Lục giáo trình bạn tìm tài liệu tham khảo CSDL, dễ tài liệu MS Access Tôi bạn có kiến thức CSDL hiểu biết Table rồi! Có hàng khối công việc bạn phải làm việc Table bạn hướng dẫn cặn kẽ sách Bạn phải vượt qua số kiến thức để thành thạo thao tác với Table Như bạn biết đấy: Con đường đến thành công trải thảm sẵn đâu! Nếu bạn làm việc với MS SQL Server hay Access chúng có hỗ trợ việc tạo CSDL dễ dàng với giao diện trực quan Đối với MySQL bạn sử dụng công cụ trực quan phpMyadmin Tuy nhiên, bạn phải học cách thao tác với CSDL dòng lệnh, điều có ích cho bạn Muốn chương trình bạn lúc chạy thao tác tự động với CSDL bạn cần hàng tá lệnh PHP/SQL để thực yêu cầu chương trình Trước tạo table CSDL MySQL, có vài thứ bạn cần phải hiểu rõ Những khái niệm mà giới thiệu sau quan trọng Bạn nắm kỹ chúng trước thực việc thiết kế liệu Null Việc bạn phải làm việc thiết kế table định xem field có cho phép giá trị NULL hay không Trong CSDL quan hệ, giá trị NULL field đồng nghóa với chấp nhận liệu Nên nhớ giá trị NULL khác với giá trị chuỗi ký tự số có giá trị Đôi chương trình, bạn thực số động tác so sánh xem chuỗi có chứa giá trị hay không, câu lệnh IF Xét ví dụ PHP sau: $var //this is a variable used in the test if ($var == “”) { echo “Var is an empty string”; } else { echo $var; } Nếu bạn thực việc so sánh xem giá trị số có phải hay không thực tương tự Động tác so sánh không làm việc giá trị NULL Bạn nên hiểu NULL không chứa giá trị đó, việc so sánh trị không mang ý nghóa Trong chương bạn thấy giá trị NULL đòi hỏi lập trình viên phải cân nhắc viết lệnh liên kết table Trong lệnh SELECT SQL, có số cách để bạn kiểm tra field chứa giá trị NULL Trước hết bạn sử dụng hàm Isnull() Giả sử tìm record table mà giá trị midle_name NULL, bạn sử dụng query sau: select * from names where isnull(middle_name); Hoặc lấy record mà middle_name khác NULL: select * from names where !isnull(middle_name); Bạn sử dụng is null is not null: select * from users were addr2 is null; select * from users where addr2 is not null; Để rõ hơn, bạn xem chuyện xảy cố gắng liên kết hai table sau: Khach_hang ten Trung Khai ho_lot Le Anh Tong Phuoc ba_xa 1321 Null Hon_nhan ba_xa 1321 ten Diem ho_lot Nguyen Thuy Nếu bạn muốn tìm tên khách hàng tên bà xã họ, bạn phải liên kết table thông qua field ba_xa (Xin bạn lo lắng chưa hiểu cú pháp, bạn học phần thôi) SELECT * FROM khach_hang, hon_nhan WHERE khach_hang.ba_xa = hon_nhan.ba_xa Việc thực Trung, có vấn đề Khai độc thân ba_xa NULL Trong chương bạn khảo sát kỹ vấn đề Index Người ta nói ưu điểm vượt trội Hệ quản trị CSDL quan hệ thực việc tìm kiếm hay xếp khối lượng liệu khổng lồ cách nhanh chóng Sở dó thực việc có chứa cấu lưu trữ liệu gọi INDEX INDEX cho phép database server tạo field đặc trưng tìm kiếm với tốc độ khó ngờ Các INDEX đặc biệt hỗ trợ một nhóm record table chứa số lượng lớn record Chúng hỗ trợ tốc độ cho hàm liên kết tách nhóm liệu min(), max(), bạn tìm hiểu Chương Với tính vượt trội này, người ta lại không tạo index tất field table? Có số điều trở ngại sau: Thứ nhất, index có làm chậm số tiến trình CSDL Mỗi lần bảo trì index Database Server phải nhiều thời gian Có vài trường hợp index làm cho chúng chậm hẳn Nếu table bạn tất record giống y lý để bạn tạo index Các index dư thừa làm cho tốn thêm không gian đóa bạn mà Đối với table có gắn khoá (primary key) thông thường field có khoá dùng vào việc tìm kiếm index gán tự động field Bạn gặp lại nhiều công việc tạo index phần sau Lệnh CREATE Database Trước tạo Table điều tất yếu bạn phải tạo Database Việc dễ dàng nhanh chóng Lệnh CREATE sử dụng sau: mysql> create database database_name; Nếu bạn thắc mắc sau tạo database nằm thư mục ổ đóa bạn bạn tìm \mysql\data xem có không Khi đặt tên cho database, hay đặt tên cho field index tránh trường tránh trường hợp đặt tên khó nhớ dễ bị lẫn lộn Đối với số hệ thống Unix chẳng hạn có phân biệt chữ HOA/thường CSDL chạy ảnh hưởng theo Bạn chọn quy ước cho riêng việc đặt tên để khỏi nhầm lẫn sau Chẳng hạn tên table field đặt chữ thường chẳng hạn Nên nhớ không sử dụng khoảng trắng Bây bạn tìm hiểu hai cách tạo database: Cách thứ tạo thủ công từ dấu nhắc dòng lệnh DOS, cách thứ hai sử dụng lệnh PHP Cách thứ có trình bày chương giới thiệu bạn tạo database tên guestbook Cú pháp tạo sau: mysql> create database guestbook; Cách thứ hai sử dụng lệnh PHP, bạn dùng hàm mysql_create_db() mysql_query() Nhưng nên nhớ trước tạo bạn phải thực kết nối với database server $conn = mysql_connect(“localhost”,”username”, “password”) or die (“Could not connect to localhost”); mysql_create_db(“my_database”) or die (“Could not create database”); $string = “create database my_other_db”; mysql_query($string) or die(mysql_error()); Leänh USE Database Sau tạo database database server bạn bắt đầu chọn để sử dụng cho công việc Cách thực sau: Command Prompt: mysql> use database_name; Trong PHP: $conn = mysql_connect(“localhost”,”username”, “password”) or die (“Could not connect to localhost”); mysql_select_db(“test”, $conn) or die (“Could not select database”); Đổi thuộc tính cột (field) Thay đổi cách thành tố field lệnh change modify: alter table table_name change int not null original_column_name new_column_name Lệnh sau sai: alter table table_name change my_col2 my_col3; Nếu bạn muốn đổi thuộc tính field dùng lệnh change tạo field tên thay đổi thuộc tính Giả dụ bạn đổi field col_1 từ kiểu char(200) sang varchar(200): alter table table_name change col_1 col_1 varchar(200) Với MySQL phiên 2.22.16 trở bạn dùng lệnh modify: alter table table_name modify col_1 varchar(200) Lệnh Insert Bây bạn biết tất kiến thức cần thiết để tạo thực thay đổi định dạng table, bạn tìm hiểu cách thức để nhập thông tin vào table Bạn thực việc lệnh INSERT: insert into table_name (column_1, column2, column3, ) values (value1, value2, value3 ) Neáu fiedl cho phép giá trị NULL bạn không cần đưa vào lệnh INSERT Như bạn thấy chuỗi tên field giá trị đặt dấu ngoặc đơn () Ngoài giá trị kiểu chuỗi phải bao bọc dấu nháy đơn Như chuỗi có chứa dấu nháy đơn dấu ngoặc đơn sao? Để tránh trường hợp lẫm lẫn dấu chuỗi dấu phân định nghóa lệnh SQL có qui định muốn đưa ký hiệu đặc biệt vào chuỗi phải đặt chúng sau daáu \ ‘ (single quote) “ (double quote) \ (backslash) % (percent sign) _ (underscore) Bạn thoát khỏi dấu nháy đơn cách sử dụng dấu ngoặc đơn đóng mở () Bạn sử dụng ký tự đặc biệt sau để thực thao tác đặc thù câu lệnh: \n (newline) \t (tab) \r (carriage return) \b (back space) Nên lưu ý điều là, bạn không cần phải lo lắng ký tự thoát lập trình PHP Bạn gặp hàm xác lập PHP dùng để thực việc cách tự động Hàm addslashes() xác lập php.ini hỗ trợ việc Lệnh Update Lệnh UPDATE có chút khác biệt so với lệnh mà khảo sát, thực thông qua lệnh WHERE Cú pháp thông thường là: update table_name set col_1=value1, col_2=value_2 where col=value Xin nhắc lại lần nữa, bạn muốn thêm vào chuỗi, bạn cần phải bao dấu nháy đơn dấu thoát Nên nhớ lệnh WHERE câu lệnh UPDATE thực phép so sánh phía sau Thông thường hay dùng để định xác định record đơn với khoá Trong table folks sau ID khoá id lname salary Don fname Liu 25,000 Don Corleone 800,000 Don Juan 32,000 Don Johnson 44,500 Câu lệnh sau tác động đến Don Corleone: update folks set fname=’Vito’ where id=2 Như bạn thấy, bạn dùng lệnh UPDATE dựa field fname thật không nên chút nào, bạn cập nhật tất field table update folks set fname=’Vito’ where fname=’don’ Bạn dùng UPDATE để thực việc điều chỉnh tăng lương nhân viên chẳng hạn: update folks set salary=50000 where salary Leänh show columns /show fields Các lệnh cho kết giống Bây bạn dùng lệnh CREATE học để tạo table sau dùng hai lệnh hiển thị field nó: create table topics ( topic_id integer not null auto_increment primary key, parent_id integer default not null, root_id integer default 0, name varchar(255), description text null, create_dt timestamp, modify_dt timestamp, author varchar(255) null, author_host varchar(255) null, index my_index(parent_id) ) Hình sau trình bày kết lệnh SHOW FIELDS thực từ dấu nhắc lệnh: Lệnh Show Fields Bạn cho kế tương tự PHP cách sử dụng hàm MYSQL_FIELD_NAME(), MYSQL_FIELD_TYPE(), MYSQL_FIELD_LEN() Tất các hàm trình bày cặn kẽ phần sau $db = mysql_connect(“localhost”,”root”, “”) or die (“Could not connect to localhost”); mysql_select_db(“test”, $db) or die (“Could not find test”); $db_name =”topics”; $query = “select * from $db_name”; $result = mysql_query($query); $num_fields = mysql_num_fields($result); //create table header echo “”; echo “”; for ($i=0; $i

Ngày đăng: 08/05/2021, 11:58

Tài liệu cùng người dùng

Tài liệu liên quan