PHP & Cơ sở dữ liệu MySQL

Chương I Ngôn ngữ PHP. I.1. Giới thiệu về php. Các ngôn ngữ xem ra giống nhau như các loại giầy dép. Có loại có vẻ bắt mắt với người này, nhưng lại khó ưa với người khác và ngược lại. Một số người chỉ thích sử dụng một hiệu giầy nào đó đã quen thuộc và ngôn ngữ lập trình cũng vậy. I.1.1. Tốc độ nhanh, dễ sử dụng. Việc so sánh tốc giữa các ngôn ngữ lập trình Web. Thứ nhất, ứng dụng viết bằng C nhanh nhất. Thứ hai, công việc lập trình C khá phức tạp, và sẽ ngốn nhiều thời gian hơn. Thứ ba, việ

doc55 trang | Chia sẻ: huyen82 | Lượt xem: 1716 | Lượt tải: 3download
Tóm tắt tài liệu PHP & Cơ sở dữ liệu MySQL, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
c so sánh giưa các ngôn ngữ là một điều kho khăn. PHP có đầy đủ các đặc tính như khả năng, cấu trúc và dễ sử dụng. Tóm lại PHP cung cấp tính năng mạnh mẽ để thực hiện ứng dụng Web một cách nhanh chóng. I.1.2. Có thể chạy trên nhiều hệ điều hành. PHP có thể chạy trên WindowsNT/2000/2003 và Unix với sự hỗ trợ của IIS và Apache. Nhưng ngoài ra có thể chay trên một số các platform khác như Netscape, Roxen, hay một vài thứ khác. Như chúng ta đã biết ASP có thể chay trên Unix, ColdFusion có thể chạy trên Solaris và Linux, JSP có thể chạy trên khá nhiều loại platform. Đối với PHP, nó có thể chạy tốt trên những platfrom hỗ trợ các chủng loại trên. I.1.3. Có thể truy cập bất cứ loai cơ sở dữ liêu nào. ứng dụng của bạn dự đinh sẽ truy cập những loại dữ liệu dich vụ nào? LDAP, IMAP mail server, DB2, hay XML parser hay WDDX. Bất kể bạn cần đến thứ gì thì PHP đều hỗ trợ bạn thông qua các hàm được xây dựng sẵn nó sẽ làm công việc của bạn trở nên dễ dàng và tiện lợi. I.1.4. Luôn được cải tiến và cập nhật. Nếu như bạn cảm thấy bỡ ngỡ đối với việc phát triển mã nguồn mở, bạn có lẽ sẽ ngạc nhiên đối với chất lượng phần mềm này. Có hàng ngàn chuyên gia lập trình xuất sắc đợi sẵn và họ sẵn sàng bỏ thời gian để tạo ra những phần mềm tuyệt vời và hầu như miễn phí. Đố với ngôn ngữ lập trình PHP thì ắt hẳn là có rất nhiều các nhà lập trình đang thực hiện phát triển nó hàng ngày. I.2. Nhúng PHP và HTML. Khi làm việc với các trang PHP, bạn cần thiết phảI sử dụng thẻ form trong trang Web với hai phương thức GET và POST trong Action. I.2.1. Nhúng mã PHP trong HTML Để nhúng đoạn mà PHP trong HTML, bạn bắt đầu bằng Ví dụ in ra câu “Xin chào!” Hello <? echo “Xin chao!” ?> I.2.2. Thẻ PHP. Có bốn loại the khác nhau của PHP mà bạn có thể sử dụng để thiết kế trang web PHP I.2.2.1. Kiểu short: Đây là thẻ mặc định mà các nhà lập trình PHP thường sử dụng. Để cho phép trang PHP có thể thực thi với loại thẻ này. I.2.2.2. Kiểu định dạng XML: Thẻ này có thể sử dụng với văn bản định dạng XML, nếu bạn lập trình PHP có ý định sử dụng với XML trong website của mình thì cần khai báo I.2.2.3. Kiểu Script: Trong trường hợp bạn sử dụng PHP như một Script bạn có thể khai báo echo “PHP script”; I.2.2.4. Kiểu ASP: Trong trường hợp bạn khai báo thẻ PHP như một phần trong trang ASP, thẻ này được sử dụng khi bạn cho phép chúng bằng cách cấu hình (asp_tags) trong tập tin config với cú pháp của thẻ: <% echo “PHP script” %> I.2.3. Khoảng trắng trong PHP Khoảng trắng(whitespace) như dòng mới(carriage return), tabs, space, được viết dưới dạng white espace, white espace trong khi duyệt HTML hay PHP. Ví dụ: Xin chào! Hello Cả hai phát biểu trên có cùng kết quả. Tuy nhiên ban cần lưu ý rằng, khi lập trình PHP cũng tương tự như khi lập trình C, java cuối câu lệnh kết thúc bằng dấu “;”. Chính vì vậy, có thể khai báo nhiều phép gán, câu lệnh trên cùng một hàng. Ví dụ: Echo “Xin chào” ; Echo “Đã đến với Việt Nam”; Echo “Hân hạnh được tiếp đón các bạn”; I.2.4. Gọi hàm. Để gọi hàm trong PHP, bạn khai báo gọi hàm tương tự như gọi hàm trong các ngôn ngữ lập trình khác, hầu hết các hàm khi gọi bạn cần truyền tham số và giá trị trả về. Ví dụ: <? echo “Gọi hàm echo “Hôm nay là:”; echo date(“H:i, jS F”); echo “” ?> I.3. Truy cập biến form Thông thường khi cần lấy dữ liệu của người dùng nhập, bạn thường sử dụng thẻ form trong trang web nhằm ràng buộc tất cả các thẻ input, select… I.3.1. Biến form Dữ liêu đến từ script đều là biến PHP, bạn có thể nhận biết chúng bằng cách sử dụng dấu $ trước tên biến. Có hai cách để truy cấp dữ liệu trên form thông qua biến với hai phương thức Post và Get trong thẻ form. Tuy nhiên bạn cũng có thể lấy giá trị của các thẻ trong form bằng cách sử dụng mảng $HTTP_POST_VARS và $HTTP_GET_VARS hay còn gọi là Long style. Trong trường hợp sử dụng cách lấy giá trị từ các thẻ trong thẻ form thông qua mảng $HTTP_POST_VARS và $HTTP_GET_VARS , chẳng hạn như trong trường hợp lấy giá trị của thẻ txtUser sẽ là $HTTP_POST_VARS[“txtUser”]. Để sử dụng khai báo Short style, bạn cần phải cấu hình chỉ mục register_globals là “ON” trong tập tin php.ini. Ngựoc lại, trong trường hợp Long style, bạn cần phải thay đổi giá trị là “OFF” và track_var là “ON”. Sử dụng cách lấy giá trị kiểu thứ Long style chạy nhanh hơn so với Short style. I.3.2. Ghép nối chuỗi Để ghép nối chuỗi với nhau bạn sử dụng dấu “.” chẳng hạn như trong trường hợp sau: Echo “Username:”.$txtUser; Tuy nhiên trong một chuỗi HTML, nếu không tìm thấy dấu $ và chuỗi sau đó, PHP Engine sẽ ngầm hiểu là biến, nếu không tìm thấy biến đó khai báo và gán giá trị truớc đó, như trong trường hợp sau: <?php echo “User:$txtUser”; ?> I.3.3. Nhận dạng Nhận dạng tên của biến, tên hàm, tên lớp, điều này có nghĩa là bạn không nên khai báo tên của biến trung với tên của hàm trong PHP, ngoài ra tên biến không bắt đầu bằng kí từ số. Trong phân biệt chữ hoa và chữ thường trong khai báo biến. I.3.4. Khai báo biến PHP engine không cần yêu cầu bạn khai báo biến trước khi sử dụng chúng. Tuy nhiên, bạn hãy tập thói quen khai báo và khởi tạo giá trị khi sử dụng chúng. I.3.5. Gán giá trị cho biến Để gán giá trị cho biến, nếu biến đó chưa được khai báo trước đó, biến này được coi như vừa khai báo vừa khởi tạo. Trong trường hợp biến đã khai báo, biến này chỉ thay đổi giá trị như ví dụ sau: <?php $x=2; $y=3; $x=$x*y; echo “Kết quả: $z”; ?> I.3.6. Kiểu dữ liệu của biến trong PHP PHP hỗ trợ 5 kiểu dữ liệu sau: Interger: Sử dụng cho kiểu dữ liệu có kiểu dữ liệu là số. Double: Sử dụng cho kiểu dữ liệu có kiểu dữ liệu là số thực. String: Sử dụng cho kiểu dữ liệu có kiểu dữ liệu là chuỗi, kí tự. Array: Sử dụng cho kiểu dữ liệu có kiểu dữ liệu là mảng có các kiểu dữ liệu là các phần tử cùng kiểu dữ liệu. Object: Sử dụng cho kiểu dữ liệu có kiểu dữ liệu là đối tượng của lớp. I.3.7. Chuyển đổi kiểu dữ liệu Trong quá trình tính toán trong PHP, đôi khi bạn cần chuyển đổi kiểu dữ liệu cho biến. Trong trường hợp này, bạn chỉ cần khai báo kiểu dữ liệu trước tên biến, như ví dụ sau: <?php $x=3; $y=5; $t=(double)($s*$y); ?> I.3.8. Hằng trong PHP Tất cả các hằng đươc khai báo bằng chữ hoa, thêm vào đó bạn sử dụng từ khoá define. I.4. Toán tử trong PHP. Toán tử trong PHP cũng giống như các ngôn ngữ lập trình khác, toán tử sử dụng để thao tác trên biến, giá trị, biểu thức bàng cách thực hiện phếp toán. I.4.1. Các phép toán số học Toán tử Tên Ví dụ + Cộng $x+$y - Trừ $x-$y * Nhân $x*$y / Chia $x/$y % Modulo $x%$y I.4.2. Các phép toán về chuỗi Như đã trình bày ở trên phép toán nối chuỗi là dấu “.” Ví dụ: <?php $a= “Khoa”; $b= “CNTT”; $a=$a.$b; echo $a; ?> I.4.3. Phép toán gán kết hợp Trong PHP, bạn có thể sử dụng các phép toán gán kết hợp, nhằm mục đích giảm bớt thời gian khai báo Toán tử Số học kết hợp += $a+=$b$a=$a+$b; ++ $a++$a=$a+1; -= $a-=$b$a=$a-$b; -- $a--$a=$a-1; *= $a*=$b$a=$a*$b; /= $a/=$b$a=$a/$b; %= $a%=$b$a=$a%$b; .= $a.= $b$a=$a.$b; I.4.4. Tham chiếu Tham chiếu là phép toán trong PHP được biết dưới kí hiệu &, phép toán này dùng để kết nối hai phép toán gán. Ví dụ: <?php $a=12; $b=&$a; echo “a:$a”; echo “b:$b”; ?> I.4.5. Phép toán ? Phép toán ?: là một phép toán thay thế cho phát biểu điều kiện if và else với một câu lệnh bên trong. I.4.6. Phép toán ERROR Trong trường hợp biểu thức hay phép toán phát sinh lỗi, nếu muốn PHP xuất ra thông điệp thì bạn không phải khai báo phép toán @(error) Ví dụ trường hợp chia cho 0 Error message will be appear <?php $a=50; $c=0; $b=$a/$c; echo “b:”.$b; ?> Nếu không muốn đưa ra thông điệp lỗi ta sử dụng phép toán @trước biểu thức như sau: With Error Operator <?php $a=60; $c=0; $b=@($a/$c); echo “b:”.$b; ?> I.5. Biến hàm I.5.1. Gán và kiểm ta biến Hỗu hết những hàm này dùng để kiểm tralaoi của hàm. Hai loại thông dụng thường dùng nhất là gettype() và settype(), chúng có cấu trúc như sau: String gettype(mixed var); Int settype(string var, string type); Để sử dụng hàm gettype(), truyền tham số là một biến, chúng ta sẽ quan tâm đến giá trị trả về là loại kiểu dữ liệu hay “unknow type” nếu chúng không thuộc vào các kiểu dữ liệu như: string, interger, double, array,object. Tương tự như trên, settype() sử dụng bằng cách truyền tham số là một biến và kiểu dữ liệu mới này dưới dạng chuỗi nếu muốn hàm đó trả về kiểu dữ liệu này. I.5.2 Kiểm tra trạng thái biến Ngoài các hàm kiểm tra dữ liệu của biến, PHP còn có một số hàm kiểm tra trạng thái của biến. Ví dụ: Trong trường hợp bạn kiểm tra biến đó có tồn tại hay không ta sử dụng hàm isset() với tham số truyền vào là biến, nếu biến đó tồn tại hàm trả về giá trị true, ngược lại trả về giá trị false. Hàm unset() với tham số là biến đang tồn tại, hàm này sẽ loại bỏ biến này trong quá trình thực thi. Hàm empty() cho phép bạn kiểm tra biến tồn tại và không rỗng, có chiều dài khác 0 trả về giá trị true, ngược lại trả về giá trị false. I.6. Hàm(functions) trong PHP Không thể không nói đến hàm trong việc lập trình, nhờ có nó mà chương trình của chúng ta trở nên dễ dàng tổ chức hơn. Như các ngôn ngữ khác PHP có khả năng cung cấp những hàm do người dùng tự định nghĩa. Đồng thời, PHP cũng óc một số cải tiến để việc viết hàm dễ chụi và mạnh mẽ hơn. Định nghĩa và gọi hàm Rất dễ để định nghĩa và gọi hàm trong PHP: <?php Function tên_hàm([các tam số; truyền vào…]) { [thân hàm…] } ?> Từ khoá function báo cho PHP biét rằng đay là một hàm. Tiếp theo đó là tên hàm. Tên hàm của PHP có thể là bất cứ kí tự Unicode gì( kể cả tiếng Việt, Trung…, nhưng không được bắt đầu bằng số). Thật sự mạnh mẽ, nhưng bạn sẽ gặp vấn đề khi đăt tên file đó. Chương II: Cơ Sở Dữ Liệu MSQL II.1.Cơ sở dữ liệu MySQL MSQL lầ cơ sở dữ liệu được sử dụng cho các ứng dụng trong web có quy mô vừa và nhỏ.Tuy không phải là một cơ sở dữ liệu lớn nhưng chúng cũng có trình giao diện windows hay linux, cho phép người dùng có thể có thao tác liên quan đến cơ sở dữ liệu. Cũng giống như các hệ cơ sở dữ liệu khác,khi làm việc với cơ sở dữ liệu MSQL, bạn đăng ký kết nối tạo cơ sở dưx liệu quản lý người dùng phân quyền sử dụng,thiết kế đối tượng bảng của cơ sở dữ liệu và xử lý dữ liệu. Để sử dụng hay phát biểu các thao tác trên cơ sở dữ liệu ban có thể sử dụng quy trình quản lý đồ hoạ hay dùng dòng lệnh còn gọi là command line. Tuy nhiên, trong bất kỳ ứng dụng cơ sở nào cũng vậy,nếu bản thân chúng được hỗ trợ bằng một trình giao diện đồ hoạ, bạn có thể sử dụng chúng tiện lợi hơn với trình giao diện commađ line,bơỉ vì, cho dù bạn điều khiển MSQL dưới bất kỳ hình thức nào, mục đích cũng là quản lý thao tác trên cơ sở dữ liệu. II.2. Tạo cơ sở dữ liệu và người dùng II.2.1.Kết nối và tạo cơ sở dữ liệu Để kết nối cơ sở dữ liệu có 2 cách II.2.1.1.kết nối và tạo cơ sở dữ liệu bằng command line Nếu bạn sử dụng command line thì bạn có thể trỏ đến các thư mục msql\bin. Sau đó, bạn có thể bắt đầu start | run | c:\msql\bin\msql.exe.thì sẽ có kết quả. Bắt đầu từ dấu nhắc msql > như hình trên thì bạn có thể thực hiện các phát biểu SQL và MSQL. Lưu ý: Nếu bạn chua biết các lệnh của MSQL từ dấu nhác msql> bạn có thể gõ dấu ?để liệt kê các phát biểu như: connect, exit, quit, … MSQL>crate database database name; Trong trường hợp này, chúng tôi tạo cơ sở dữ liệu trên Inter Shop như phát biểu sau: Msq;>create database Inter shop; Chú ý: Để thay đổi cơ sở dữ liệu làm việc, bạn có thể sử dụng lệnh use database name; trong trường hợp có nhiều cơ sở dữ liệu, bạn có thể làm việc trên bất kỳ cơ sở dữ liệu chỉ định nào chẳng hạn use inteshop; IV.2.1.2.Kết nối và tạo cơ sở dữ liệu bằng giao diện đồ hoạ Trong trưòng hợp thưc hiện giao diện đồ hoạ bạn có thể chạy trên tập tin msqlfront.exe trong thư mục MSQL control của sổ xuất hiện Nếu lần đầu tiên tạo cơ sở dữ liệu, bạn cần tạo một kết nối Connection , cung cấp trên Server hay IP của máy chứa MSQL của cơ sở dữ liệu MSQL là root và pasword là rỗng Nếu bạn đã có cơ sở dữ liệu đang tồn tại, bạn có thể gõ tên cơ sở dữ liệu trong phần databases Trong trường hợp lần đầu tiên , bạn không cần cung cấp tên cơ sở dữ liệu, bạn có thể tạo chúng khi kết nối Sau khi kết nối cơ sở dữ liệu thành công, trình điều khiển cơ sở dữ liệu MSQL có giao diện như hình 4-5.Công việc đầu tiên của bạn là phảI tạo cơ sở dữ liệu. Bắt đầu từ menu có tên Tools | create Database hay goi tên Root @localhost | R- Click |Create Database cửa sổ xuất hiện như hình 4-6. Cung cấp tên cơ sở dữ liệu, trong trường hợp này bạn có thể nhập InterShop, bấm nút OK, cơ sở dữ liệu xuất hiện trong củă sổ điều khiển. Trong cả hai trường hợp tạo cơ sở dữ liệu MSQL thành công như trên có thể tìm thấy cơ sở dữ liệu trong thư mục msql/ data như hình 4-7 II.2.2.Quản lý người dùng Để đăng nhập cơ sở dữ liệu MSQL, bạn có thể sử dụng hai cách trình bày ở trên hoặc sau khi tạo ra cacs usename khác, bạn có thể sử dụng các usename và password này để đăng nhập. Nếu sử dụng command line bạn chỉ cần gõ >msql-h hostname- u usename –p từ dấu nhắc, nếu sử dụng trình giao diện đồ hoạ thì nhập các thông tin vào các ô textbox . Từ khoá -h chỉ tên ( computer name ),IP, hay localhost của máy có sử dụng có sở dữ liệu MSQL, bạn có thể sử dụng hai cách trên.Muốn tạo Use namê bằng comman line bạn có thể gõ tù đấu nhắc phát biểu sau GRANT Select,Inset,Update,Index,Alter Create,Drop,References On *.* TO’myis’@’%’ IDENTIFED BY ‘12345678’ Phát biểu trên vùa tạo rs use name trên myis với hostname là cơ sở dữ lỉệu hiện hành,password là 12345678 và được quyền lựa chọn Select,Inset,Update,Index,Alter ..trên cơ sở dữ liệu hiện hành Trong trường hợp bạn tạo ra một use name hiện hành không cung cấp các quyền trên cơ sở dữ liệu, bạn có thể thực hiện như phát biểu use name: ekhang,password:12345678 sau: GRANT Usage On *.* TO’ekhang’@’%’ IDENTIFED BY ‘12345678’ Nếu bạn sử dụng giao diện đồ hoạ có thể tạo use name và gán quyền như khi sử dụng menu có trên , cửa sổ xuất hiện 4-8 II.2.3.Cấp quyền cho người dùng Các quyền Select,Inset,Update,Index,Alter… trên cơ sở dữ liệu bạn có thể tham khảo 4-1 Loại áp Dụng Diễn Giải Select tables,columns cho phép use truy vấn mẩu tin từ table ,Inset tables,columns cho phép use thêm mới mẩu tin vào table Update tables,columns cho phép use thay đổi mẩu tin từ table Index tables cho phép use tmẩu tin tồn tại trong table Deleter tables cho phép use thêm mới hay xoá từ table Alter tables cho phép use thay đổi cấu trúc đối tượng Create Database tables cho phép user tạo mới đối tượg Table Drop Database tables cho phép user xoá đối tượg Table Xuất hiện từ các quyền có ảnh hưởng đến cấu truc cơ sở dữ liệu, các đối tượng cơ sở dữ liệu và dữ liệu bạn có thể xem xét kĩ trước khi cung cấp quyền cho user làm việc trên cơ sở dữ liệu. Ngoài các quyền trên, trong MSQL có một số quyền không gán mặc định như trong bảng 4-2, bạn có thể xem xét các quyền quản trị để cấp cho người dùng. Loại Diễn Giải Reload cho phép người quản trị nạp lại các Table,quyền, hots,logs Shutdow cho phép người quản trị chấm dứt hoạt động MSQLServer Process cho phép người quản trị xem chuong trinh chủ và chấm một số Quá trình dang thực thi File Cho phép dữ liệu ghi vào bảng từ tập tin Lưu ý: các use name bình thường không nên được cấp quyền như trong bảng 4-2 cho họ.Trong trường hợp bạn muốn cấp tất cả các quyền trong bảng 4-1 và bảng 4-2 cho use name khi tạo ra hok, bạn sử dụng khoá All hay All Privileges trong phát biểu tạo use như sau GRANT All On *.* TO’ekhang’@’%’ IDENTIFED BY ‘12345678’ Tương tự như vậy, trong trường hợp bạn không cung cấp các quyền nào trên cơ sỏ dữ liệu hiện hành bạn có thể khai báo cấp p-hát quỳên như sau GRANT Usage On *.* TO’ekhang’@’%’ IDENTIFED BY ‘12345678’ II.2.4.Xoá quyền của User Để xoá các quyền của user từ cơ sở dữ liệu hiện hành, bạn có thể sử dụng phát biểu SQL có tên Revoke và phát biểu ngược lại với Grant. Nếu bạn xoá một số quyền của user, bạn có thể sử dụng khai báo phát biểu như sau Revoke privileges [(clomns)] On item From user name Trong trường hợp xoá tất cả các quyền của user, bạn có thể phát biểu như sau: Revoke All On item From user name Nếu user được cấp quyền với tuỳ chọn Grant Oion, để xoá quyền đó của user bạn có thể khai báo như sau. Revoke Grant Oion On item From user name II.3.Các kiểu dữ liệu trong cơ sở dữ liệu MySQL Trước khi thiết kế cơ sở dữ liệu trên MySQL, bạn cần tham khảo một số dữ liệu thương dùng, chúng bao gồm các nhóm như:numeric,date and time và string . Điều cần lưu ý khi thiết kế cơ sở dữ liệu cho cột trong table, bạn cần xem xét các loại dữ liệu lưu trữ trong thuộc nhóm kiểu dữ liệu nào, chiều dài cũng như các rằng buộc khác, nhằm khai báo cho phù hợp. II.3.1.Loại dữ liệu numeric Kiểu dữ liệu này bao gồm các số nguyên trình bày trong bảng 4-3 và kiểu chấm động trong trường hợp kiểu dữ liệu chấm động diều khiển bạn cần chỉ tõ bao nhiêu dấu phần lẻ như trong bảng 4-4 Loại Range Byte Diễn giảI Tinyint -127->128 hay 0..255 1 Số nguyên rất nhỏ Small int 2 Số nguyên nhỏ Mediumint 3 Số nguyên vùă Int 4 Số nguyên Bigint 8 Số nguyên lớn II.3.2.Loại dữ liệu data And Time Kiểu dữ liệu này cho phép nhập chuỗi ngày tháng hay dạng số như trong bảng 4-5 Loại Range Bytes Diễm giảI float Phụ thuộc số thập phân 4 Số thập phân dạng single hay double Float (M,D) +1.175494351E-38 -1.175494351E-38 +3.40282346638 -3.40282346638 4 Số thập phân dạng single Double (M,D) +1.7976931348623157308 -1.7976931348623157308 +2.202250738585072014E-308 -2.202250738585072014E-308 Số thập phân dạng double Float (M [,D] ) 8 Số chấm động lưu dưới dạng char IV.3.3.Loại dữ liệu String Kiểu dữ liệu chia làm ba loại, loại thứ nhát như char( chiều dài cố định) và varchar ( chiều dài biến thiên ).Char cho phép bạn nhập dưới dạng chuỗi với chiều dài lớn nhất bằng chiều dài bạn đã định nghĩa, nhưng khi truy cập dữ liệu trên File có khai báo dạng này, bạn cần sử lý khoản trắng.Điều này có nghĩa là nếu khai báo chiều dài 10, nhưng bạn chỉ nhập chuỗi kí tự 4. MSQL lưu trữ chuỗi trong bộ nhớ với chiều dài 10. Ngựơc lại với kiểu dữ liệu char và varchar, chiều dài lớn nhất người dùng có thể nhập vào bằng chiều dài bạn đã định nghĩa cho File này, bộ nhớ chỉ lưu trữ chiều dài dúng chiều dài bạn đã nhập Loại thứ hai là Text hay Blob,Text cho phép lưu trữ chuỗi rất lớn,Blob cho phép lưu trữ đối tượng nhị phân. Loại thứ ba là Enum và Set, bạn có thể tham khảo ba loại tren trong bảng 4-7 Loại Range Diễn giải Char Varchar Tinyblob Tinytext II.4.Phát biểu SQL MSQL là một hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS).RDBMS là hệ mô hình cơ sở dữ liệu thông dụng hiện nay II.4.1.Nhóm phát biểu SQL Như đã trình bày trong chương 3,hầu hết sản phẩm cơ sở dữ liệu quan hệ hiện nay đều dựa trên chuẩn SQL, chẳng hạn như SQL server ,Oracle , MSQL điều này có nghĩa tất cả các cơ sở dữ liệu quan hệ đều phải có những tiêu chuẩn theo cú pháp SQL và MSQL cũng không phảI là ngoại tệ Ngôn ngữ SQL chia làm 4 loại sau: DDL : ngôn ngữ định nghĩa dữ liệu, dùng để tạo cơ sở dữ liệu, định nghĩa các đối tượng cơ sở dữ liệu như Table,Query,View hay các đối tượng khác. DML : ngôn ngữ thao tác dữ liệu dùng để thao tác dữ liệu chẳng hạn nhu các phát biểu Select,Insert,Delet,Update … DCL : ngôn ngữ sử dụng truy cập đối tượng cơ sở dữ liệu dùng để thay đổi cấu trúc tạo cho người dùng gán quyền TCL: Ngôn ngữ sử dụng khi báo chuyển tác chẳng hạn như Begin Tran, commit … II.4.2.Phát biểu SQL thao tác dữ liệu II.4.2.1.Khái niệm cơ bản về câu truy vấn Select Phát biểu Select dùng để truy vấn dữ liệu một hay vài bảng khác nhau, kết quả trả về một tập mẫu tin thoả các điều kiện cho trước nếu có cú pháp của phát biểu SQL dưới dang Select như sau: SELEC: danh sách các cột FROM: danh sách bảng WHERE: các điều kiện rằng buộc HAVING: điều kiện bắt buộc ORDER BY: danh sách cột LIMIT Danh sách cột khi khai báo các cột,biểu thức thức kết hợp giữa các cột của bảng bạn cần truy vấn.Trong trường hợp có hai cột cùng tên của hai bảng trong cùng phát biểu, bạn cần định nghĩa bảng đI trước II.4.2.2. Phát biểu Select với mệnh đề From Phát biểu Sql dạng Select là một trong những phát biểu yêu cầu MSQL truy vấn dữ liệu trên cơ sở dữ liệu chỉ định Select dùng để đọc thông tin từ cơ sở dữ liệu theo những trường quy định, hay nhưng biểu thức cho trường đó. Mệnh đề From chỉ ra tên một bảng có qun hệ truy vấn thông tin.Thường chúng ta sử ssụng công cụ MSQL-Font | Query để thực thi phát biểu SQL Sau khi thực thi và phát biểu SQL kết quả trả về số mẩu tin và tổng mẩu tin . II.4.2.3. Phát biểu Select với mệnh đề Where. Khi bạn dùng mệnh đề where để tạo nên điều kiện cần lọc mẩu tin theo tiêu chuẩn được định nghĩa. Thông thường where dùng trường đẻ so sánh giá trị, cột khác, hay biểu thức chứa trường bất kỳ có trong bảng. Phát biểu SQL dưới dạng Select dưới mệnh đè where có cú pháp dạng như sau: Tổng quát: Select*from tablename where điều kiện Hoặc Select field1, field2… where điều kiện Cụ thể ; Select * from tblkhách _hàng where city In(‘HN,HCM’) Các phép toán so sánh: >(lớn hơn) where amount >1000 < (nhỏ hơn) where amount<1000 >=(lớn hơn or bằng) where amount >=1000 <=(nhỏ hơn or bằng) where amount <=1000 = where custID= ‘12’ !=khác where custID= ‘12’ khác where custID= ‘12’ Các phép toán logic có thể sử dụng trong điều kiện and: phép toán “and”-và Select * from tbloders where amount>1000 and custID= ‘5’. or: Phép toán “or”- trừ hoặc Select * from tbloders where amount>1000 or custID= ‘5’. Not: Phép toán “Not”- phủ định. Select * from tbloders Where date IS NOT NULL. Not In: Phép toán “NOT IN”- phủ định tập hợp. Select * from tbloders Where Amount Between 12000 AND 3000. II.4. Các hàn thường được dùng trong MSQL II.4.1 Các hàm sử dụng trong phát biểu select có mệnh đề GROUP BY Max- tìn giá trị lớn nhất trong tập hợp giá trị Select SUM (Amuont )AS S1_Total FROM tble Orders Min- Tìm giá trị nhỏ nhất trong tập hợp giá trị Select MIN (Amuont )AS S1_Min FROM tbleOrders AVG- tìm giá trịn trung bình trong một tập hợp Select AVG (Amuont )AS S1_Mid FROM tbleOrders SUM- tính tổng giá trị trường hợp trong câu truy vấn Select SUM (Amuont )AS S1_Total FROM tbl Orders COUNT- trả về giá trị số lượng mẩu tin trong câu truy vấn Select Count (* )AS S1_Mau_Tin FROM tbleOrders Ví dụ :về hàm MAX,MIN,VAG,SUM,COUNT SELECT Select SUM (Amuont )AS S1_Total, Select MIN (Amuont )AS S1_Min, Select AVG (Amuont )AS S1_Mid, Select SUM (Amuont )AS S1_Total, Select Count (* )AS S1_Mau_Tin FROM tbleOrders II.4.2. Các hàm xử lý chuỗi + Char()-chuyển đổi kiểu mã ASCII sang dạng chuỗi Select char(35)cho kết quả # + ASCII()- Hàm trả về giá trin mã ASCII của ký tự bên trái của chuỗi SELECT (‘TOI’)cho kết quả 84 +LOWER()- Hàm này chuyển đổi kiểu chuỗi thành kiểu chữ thường LOWER(Tuân) cho kết quả tuân LOWER(TUÂN) cho kết quả là tuân +LEN()-Hàm trả về giá trị một chuỗi LEN(nguyễn văn tuân )trả về giá trị 15 +RTRIM()- Hàm dùng loại bỏ khoang trắng bên phải của chuỗi RTRIM( nguyễn văn tuân) trả về giá trị ‘nguyễn văn tuân ‘ +LEFT(‘ biểu thức ký tự ’,n)- Hàm trả về giá trịn bên trái cho đến vị trí thứ n Left(‘thuy’,3) trả về ‘ơThu’ REFT(‘biểu thức ký tự ’,n)- hàm trả về chuỗi bên trái cho đến vị trí n Left (‘thuy’,3) trả về giá trị ‘huy’ INTR(‘ Biểu thức cần tìm’,’Biểu thức cần tìm ’) SELECT Instr(‘Tuân’,’Nguyên Văn Tuân’) Cho kết quả trả về giá trị 11 II.4.3.Các hàm xử lý thời gian +Ngày CurDate() Hàm trả về ngày,tháng năm hiện hành của hệ thống Select Curdate() AS’ hôm_nay ’ Kết quả trả về 2206-11-07 +Curtime(): Hàm trả về giờ phút giây hiện hành của hệ thống Select Curtime() AS’ Time is’ Kết quả trả về 23:45:06 +Hàm period_Diff- Hàm trả về số ngàt trong khoảng thời gian giữa hai ngày Select period_dif(Orderdate,Getdate()) as ‘Sn từ lúc thu tiền đến nay’ from tblOrders +Hàm Dayofmonth – hàm trả về ngày thứ mấy trong tháng Select dayofmonth(curdate()) as’hôm nay ngày ’ trả về 6 II.4.4. Các hàm toán học +Hàm Sqrt()- Hàm trả về là căn bậc hai của một biểu thức Select Sqrt(16) trả về 4 +Hàm Round trả về số lần làm tròn của một biểu thức Select round(456.45,-1) kết quả trả về 460.00 II.4.5. Phát biểu Insert,Update Khi cần thêm mẩu tin vào bảng trong cơ sở dữ liệu MSQL ta dùng phát biểu Insert Cú pháp của phát biểu Insert INSERT INTO tblName (fỉeld1,field2,field3......) values (biểu thức 1, biểu thức2, biểu thức 3....) giá trị cụ thể [Select fỉeld1,field2,field3...... From tblName1] giá trịn insert và là kết quả của câu truy vấn . II.4.5.1 Phát biểu SQL dạng Update Chức năng của phát biểu update là cập nhập dữ liệu đã tồn tại trong bảng dữ liệu.khi update cùng cập nhập dữ liệu cho một mẩu tin chỉ định nào đó thường lệnh này sủ dụng chung với mệnh đề Where.Nếu cập nhập tất cả các Record trong bảng thì ta có thể bỏ mệnh đề Where.cấu trúc của biểu thức này được phát biểu như sau: +Update từ giá trị cụ thể Update Set=,....,Where Điều Kiện +Update phát biểu từ kết quả của biểu thức select Update Set= Where Điều Kiện Ví dụ : UPDATE ‘tblcustomers’ SET UserName= ‘Nhungvnn@gmail.com ‘WHể CustID =5 II.4.5.2.Phát biểu SQL dạng DELETE Với phát biểu này cho phép bạn xoá mẩu tin trong bảng dữ liệu theo ý mình.Thường kềm theo Delete là mệnh đề where để lọc những mẩu tin muốn xoá. Cấu trúc: DELETE FROM Where ví dụ: Delete from tblCustomurs where Cust Name is Null II.4.5.3.Phát biểu SQL dạng JOIN Ngoài các phát biểu SQL với các dạng trên trong phần kế tiếp, ở đây trình bày một số phát biểu SQL dạng select để kết nối dữ liệu các bảng có quan hệ với nhau, những phát biểu này bao gồm : JOIN,INER JOIN,LEFT JOIN,RIGHT JOIN. Nói một chút về cơ sở dữ liệu quan hệ đôi khi chúng ta phải lấy dữ liệu từ hai bảng một lúc chúng ta thực hiện một kết nối Cấc bảng trong CSDL có thể quan hệ rằng buộc với nhau thông qua cấc khoá. Một khoá chính(primary key) là một cột mà trong đó mỗi giá trị của hàng phải là duy nhất. Mục đích của khoá là kết nối dữ liệu lại với nhau từ nhièu bảng khác nhau mà không gây trùng lặp dữ liệu giữa các bảng ví dụ : về mệnh đề :join, Inerjoin,..... trong bảng Employees( nhân viên ) ở ví dụ dưới đay có cột Employees_ID là khoá chính, đảm bảo là không thể có hai dòng nào đó có trìng Employees_ID. Employees_ID dùng để phân biệt hai nhân viên khi họ trung tên Trong ví dụ dưới đây: Employees_ID là khoá chínghcủa Employees Prod_ID là khoá chíng của orders Cột Employees_ID trong bảng Orders được sử dụng để kết nối với bảng Employees, chỉ đến nhân viên trong bảng Employees Bảng Employees: Employees_ID Name 01 Hansen,Ola 02 Svendson,Tove 03 SvenDson,Stêphen 04 Pêttrsen, Kari Bảng Orders Prod_ID Product Employees_ID 234 Printer 01 657 Table 03 865 Chair 03 Ví Dụ: LEFT JOIN Cú pháp: SELECT côt_1,cột_2,cột_3 FROM bảng_1 LEFT FOIN bảng _2 On bảng _1. khóa_chính = bảng _2. khoá _ngoại Liệt kê tất cả các nhân vien và món hàng mà họ đặt (nếu có ) SELECT Employees.Năm,Orders. Product FROM Employees On Employees. Employees_ID =Orders. Employees_ID Chương III. PHP & CƠ Sở Dữ LIệU MySQL III.1. Session III.1.1. Khái niệm về session Khi bạn đang làm việc trên một trang web của website và gọi một trang web khác cũng thuộc website bạn đang làm việc, trình duyệt không cung cấp cho bạn biết hai trang web này được gọi nhau từ một người dùng. Bằng cách xây dựng các trang web bằng server script, bạn có thể dùng Query String để gọi những cặp tham số và giá trị, sau đó sử dụng các phương thức $HTTP_GET_VARS[“Parameter”] để lấy giá trị của từng tham số, nhằm quản lý trình duyệt web của người dùng. III.1.2. Chức năng cơ bản của session Session trong PHP được nhận biết bởi một session ID gán cho mỗi Browser. Khi Browser mở ra ứng với trang web bất kỳ của website, session ID có giá trị là một dãy số ngẫu nhiên được lưu phía trên client. Session ID có chu kỳ sống cho đén khi chúng hết hạn sử dụng, bạn có thể truyền giá trị cho session ID với URL hay ghi chúng ra Cookie. III.1.3. Cookie Cookie là một mẫu nhỏ thông tin được lưu trữ xuống từng máy tính truy cập đến website của bạn. Bạn có thể gán cookie trên máy tính của người dùng thông qua HTTP Header, bằng cách khai báo như sau: Set-Cookie: Name=Value;[expries = Date;] [path=Path;] [domain=Domain_name;][secure] Khai báo trên sẽ tạo Cookie với tên là Name, giá trị là Value, các tham số khác là tham số tuỳ chọn. Expries là thời gian giới hạn mà cookie này không thích hợp nữa. Nếu thời gian không cung cấp trong cookie, cookie này sẽ còn hiệu lực cho đến khi người dùng xoá tập tin cookie. Domain_name là tên miền của website của bạn, secủe chỉ ra rằng nôI dung của cookie sẽ không gửi thông điệp qua giao thức HTTP. III.1.4. Gán Cookie từ PHP Bạn có thể gán Cookie trong PHP bằng cách sử dụng hàm setcookie(), hàm setcookie() có cú pháp như sau: int setcookie (tring name [, string value [, int exprire [.string path [, string domain [, int secure]]]]]) Ví dụ: <?php $myvalue= “ Chào các ban!” Setcookie(“intershop”, $myvalue); ?> Cookie trang kế III.1.5 Sử dụng cookie với session Cookie có một vài vấn đề không thích hợp, trong trường hợp browser của người dùng không chấp nhận cookie. Ngưòi dùng có thể vô hiệu hoá chức năng chấp nhận cookie trong cấu hình trong Browser. Do cookie lưu thông tin cá nhân trên máy khách nên hầu hết người dùng đều không muốn, đó là lý do tại sao người dùng có thể vô hiệu hoá chức năng chấp nhận cookie trong cấu hình trong browser, ứng dụng sẽ khó xử lý trong trường hợp này. Đối với trường hợp này, bạn có thể sử dụng điều khiển session có cú pháp session_set_cookie_params($lifttime, $path, $domain); để gán cookie III.2. Cài đặt session Bao gồm các bước sau: Khởi động session. Đăng ký biến session. Sử dụng biến session. Khai báo lại và huỷ bỏ session. III.2.1. Khởi động session. Để sử dụng session, trước tiên cần phải khởi động chúng, khi khởi động session, nếu chưa tồn tại session ID, lập tức sessio._.

Các file đính kèm theo tài liệu này:

  • docDAN220.doc