CHƯƠNG 1 : TỔNG QUAN VỀ MYSQL VÀ PHP 1.1 Tổng quan về MySQL MySQL là hệ quản trị dữ liệu miễn phí, được tích hợp sử dụng chung với Apache, PHP. Chính yếu tố phát triển trong cộng đồng mã nguồn mở nên MySQL đã qua rất nhiều sự hỗ trợ của những lập trình viên yêu thích mã nguồn mở. MySQL cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL. Nhưng MySQL không bao quát toàn bộ những câu truy vấn cao cấp như SQL.
Về bản chất MySQL chỉ đáp ứng việc truy xuất đơn giản trong quá trình vận hành của website nhưng hầu hết có thể giải quyết các bài toán trong PHP.1 Khởi động và sử dụng Chúng ta sử dụng command như sau: MySQL –hname –uuser –ppass Để truy cập vào cơ sở dữ liệu. Hoặc sử dụng bộ appserv để vào nhanh hơn theo đường dẫn sau: 26 Start/ Appserv/ MySQL command Line client Sau đó nhập password mà chúng ta đã đặt vào.2 Một số thuật ngữ NULL : Giá trị cho phép rỗng. AUTO_INCREMENT : Cho phép giá trị tăng dần (tự động). UNSIGNED : Phải là số nguyên dương PRIMARY KEY : Cho phép nó là khóa chính trong bảng.
Loại dữ liệu trong MySQL IU 1 Downloaded by TOM CUA (tomboy3@gmail. Những cú pháp cơ bản - Tạo một cơ sở dữ liệu: CREATE DATABASE tên_cơ_sở_dữ_liệu; Cú pháp sử dụng cơ sở dữ liệu: Use tên_database; Cú pháp thoát khỏi cơ sở dữ liệu: Exit Tạo một bảng trong cơ sở dữ liệu: CREATE TABLE user (<tên_cột><mô_tả>,…,<tên_cột_n> ….<mô_tả_n>) Hiển thị có bao nhiều bảng: show tables; Hiển thị có bao nhiêu cột trong bảng: show columns from table; Thêm 1 cột vào bảng: ALTER TABLE tên_bảng ADD <tên_cột><thuộc_tính> AFTER <tên_cột> - Thêm giá trị vào bảng: INSERT INTO Tên_bảng(tên_cột) VALUES(Giá_trị_tương_ứng); - Truy xuất dữ liệu: SELECT tên_cột FROM Tên_bảng; - Truy xuất dữ liệu với điều kiện: SELECT tên_cột FROM Tên_bảng WHERE điều kiện; Truy xuất dữ liệu và sắp xếp theo trình tự: SELECT tên_cột FROM Tên_bảng WHERE điều kiện (có thể có where hoặc không) ORDER BY Theo quy ước sắp xếp. Trong đó quy ước sắp xếp bao gồm hai thông số là ASC (từ trên xuống dưới), DESC (từ dưới lên trên). - Truy cập dữ liệu có giới hạn: SELECT tên_cột FROM Tên_bảng WHERE điều kiện (có thể có where hoặc không) LIMIT vị trí bắt đầu, số record muốn lấy ra - Cập nhật dữ liệu trong bảng: Update tên_bảng set tên_cột=Giá trị mới WHERE (điều kiện).
Nếu không có ràng buộc điều kiện, chúng sẽ cập nhật toàn bộ giá trị mới của các record trong bảng. - Xóa dữ liệu trong bảng: 2 Downloaded by TOM CUA (tomboy3@gmail.com) lOMoARcPSD|39608261 DELETE FROM tên_bảng WHERE (điều kiện). Nếu không có ràng buộc điều kiện, chúng sẽ xóa toàn bộ giá trị của các record trong bảng.2 TỔNG QUAN VỀ PHP 1.1 Lịch sử phát triển PHP Được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng.
Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools'.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay. Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm. PHP 4 Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP. Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu tiên được giới thiệu vào giữa năm 1999.0, dựa trên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.
PHP 5 Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn. Cộng đồng PHP đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.0, hỗ trợ dịch vụ web yếu. Những điểm này chính là mục đích để Zeev và Andi viết 3 Downloaded by TOM CUA (tomboy3@gmail.com) lOMoARcPSD|39608261 Zend Engine 2. Một thảo luận trên Slashdot đã cho thấy việc phát 4 Downloaded by TOM CUA (tomboy3@gmail.com) lOMoARcPSD|39608261 triển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng những bài phỏng vấn Zeev liên quan đến phiên bản này thì đã có mặt trên mạng Internet vào khoảng tháng 7 năm 2002.
Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm. Đó cũng là phiên bản đầu tiên của Zend Engine 2. Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn. Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới.
PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3. Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP.2 Cấu trúc cơ bản PHP cũng có thẻ bắt đầu và kết thúc giống với ngôn ngữ HTML. Chỉ khác đối với PHP chúng ta có nhiều cách để thể hiện. Cách 1 : Cú pháp chính: <?php Mã lệnh PHP ?> Cách 2: Cú pháp ngắn gọn <? Mã lệnh PHP ?> Cách 3: Cú pháp giống với ASP.
<% Mã lệnh PHP %> Cách 4: Cú pháp bắt đầu bằng script <script language=php>. </script> Mặc dù có 4 cách thể hiện. Nhưng đối với 1 lập trình viên có kinh nghiệm thì việc sử dụng cách 1 vẫn là lựa chon tối ưu. 5 Downloaded by TOM CUA (tomboy3@gmail.com) lOMoARcPSD|39608261 Trong PHP để kết thúc 1 dòng lệnh chúng ta sử dụng dấu ";" Để chú thích 1 đoạn dữ liệu nào đó trong PHP ta sử dụng dấu "//" cho từng dòng.
Hoặc dùng cặp thẻ "/*…*/" cho từng cụm mã lệnh. Ví dụ: <?php echo ”Hello world!”; ?> 1. Xuất giá trị ra trình duyệt Để xuất dữ liệu ra trình duyệt chúng ta có những dòng cú pháp sau : + echo "Thông tin"; + printf "Thông tin"; Thông tin bao gồm : biến, chuỗi, hoặc lệnh HTML …. Nếu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu ".
Biến, hằng, chuỗi và các kiểu dữ liệu - Biến Biến được xem là vùng nhớ dữ liệu tạm thời. Và giá trị có thể thay đổi được. Biến được bắt đầu bằng ký hiệu "$". Và theo sau chúng là 1 từ, 1 cụm từ nhưng phải viết liền hoặc có gạch dưới.
1 biến được xem là hợp lệ khi nó thỏa các yếu tố : + Tên của biến phải bắt đầu bằng dấu gạch dưới và theo sau là các ký tự, số hay dấu gạch dưới. + Tên của biến không được phép trùng với các từ khóa của PHP. Trong PHP để sử dụng 1 biến chúng ta thường phải khai báo trước, tuy nhiên đối với các lập trình viên khi sử dụng họ thường xử lý cùng một lúc các công việc, nghĩa là vừa khai báo vừa gán dữ liệu cho biến. Bản thân biến cũng có thể gán cho các kiểu dữ liệu khác.
Và tùy theo ý định của người lập trình mong muốn trên chúng. - Hằng Nếu biến là cái có thể thay đổi được thì ngược lại hằng là cái chúng ta không thể thay đổi được. Hằng trong PHP được định nghĩa bởi hàm define theo cú pháp: define (string tên_hằng, giá_trị_hằng ). Cũng giống với biến hằng được xem là hợp lệ thì chúng phải đáp ứng 1 số yếu tố : 6 Downloaded by TOM CUA (tomboy3@gmail.com) lOMoARcPSD|39608261 + Hằng không có dấu "$" ở trước tên.
+ Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh + Hằng chỉ được phép gán giá trị duy nhất 1 lần. + Hằng thường viết bằng chữ in để phân biệt với biến - Chuỗi Chuỗi là một nhóm các kỹ tự, số, khoảng trắng, dấu ngắt được đặt trong các dấu nháy. Ví dụ: "Hello "welcome to VietNam" Để tạo 1 biễn chuỗi, chúng ta phải gán giá trị chuỗi cho 1 biến hợp lệ. Ví dụ: $fisrt_name= "Nguyen"; $last_name= ‘Van A’; Để liên kết 1 chuỗi và 1 biến chúng ta thường sử dụng dấu "." - Kiểu dữ liệu Các kiểu dữ liệu khác nhau chiếm các lượng bộ nhớ khác nhau và có thể được xử lý theo cách khác nhau khi chúng được theo tác trong 1 script.
Trong PHP chúng ta có 6 kiểu dữ liệu chính như sau : Chúng ta có thể sử dụng hàm dựng sẵn GETtype() của PHP4 để kiểm tra kiểu của bất kỳ biến. Các phương thức được sử dụng trong lập trình PHP Có 2 phương thức được sử dụng trong lập trình PHP là GET và POST Phương thức GET Phương thức này cũng được dùng để lấy dữ liệu từ form nhập liệu. Tuy nhiên nhiệm vụ chính của nó vẫn là lấy nội dung trang dữ liệu từ webserver. Ví dụ: Với url sau: shownews.php?id=50 Vậy với trang shownews ta dùng hàm $_GET["id"] sẽ được giá trị là 50.
Phương thức POST 7 Downloaded by TOM CUA (tomboy3@gmail.com) lOMoARcPSD|39608261 Phương thức này được sử dụng để lấy dữ liệu từ form nhập liệu. Và chuyển chúng lên trình chủ webserver. Cookie và Session trong PHP Cookie và Session là hai phương pháp sử dụng để quản lý các phiên làm việc giữa người sử dụng và hệ thống. Cookie Cookie là 1 đoạn dữ liệu được ghi vào đĩa cứng hoặc bộ nhớ của máy người sử dụng.
Nó được trình duyệt gởi ngược lên lại server mỗi khi browser tải 1 trang web từ server. Những thông tin được lưu trữ trong Cookie hoàn toàn phụ thuộc vào website trên server. Mỗi website có thể lưu trữ những thông tin khác nhau trong Cookie, ví dụ thời điểm lần cuối ta ghé thăm website, đánh dấu ta đã login hay chưa, v. Cookie được tạo ra bởi website và gởi tới browser, do vậy 2 website khác nhau (cho dù cùng host trên 1 server) sẽ có 2 Cookie khác nhau gởi tới browser.