Bài giảng Mã nguồn mở: Chương 6 - ThS. Nguyễn Minh Thành

pdf
Số trang Bài giảng Mã nguồn mở: Chương 6 - ThS. Nguyễn Minh Thành 18 Cỡ tệp Bài giảng Mã nguồn mở: Chương 6 - ThS. Nguyễn Minh Thành 100 KB Lượt tải Bài giảng Mã nguồn mở: Chương 6 - ThS. Nguyễn Minh Thành 0 Lượt đọc Bài giảng Mã nguồn mở: Chương 6 - ThS. Nguyễn Minh Thành 2
Đánh giá Bài giảng Mã nguồn mở: Chương 6 - ThS. Nguyễn Minh Thành
4.8 ( 20 lượt)
Nhấn vào bên dưới để tải tài liệu
Đang xem trước 10 trên tổng 18 trang, để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Nội dung

Môn Các Hệ Thống Mã Nguồn Mở Chương 6 : PHP & MYSQL Giảng viên : ThS. Nguyễn Minh Thành Email : thanhnm@itc.edu.vn 1 Môn Các Hệ Thống Mã Nguồn Mở Nội Dung Kết nối database server 2. Truy cập CSDL và thực thi câu lệnh 3. Xử lý tiếng việt trong MySQL & PHP 4. Phân trang dữ liệu 1. 2 Môn Các Hệ Thống Mã Nguồn Mở 3 Kết nối database server 1- Cú pháp mysql_connect(server_name,username,password); Đối với localhost, dù webserver có PORT là 81 vẫn không ghi thêm port, port mặc định của database server MySQL là 3306. Các cách sử dụng : 1- $con=mysql_connect(“localhost”,”root”,””) or die(“Error :”.mysql_error()); 2- $con=mysql_connect(svn,usr,pss); if(!$con) {die(“Error :”.mysql_error(); //có thể thay đổi message} else{ // truy cập database } Môn Các Hệ Thống Mã Nguồn Mở 4 Thực Thi Câu Lệnh SQL 1- Truy cập CSDL mysql_select_db(“database name", $con); với $con được trả về trong mysql_connect() đã thành công trước đó. 2- Thực thi câu lệnh SQL mysql_query(“SQL_Statement”); Tùy theo câu lệnh SQL mà ta có kết quả trả về của hàm mysql_query() mà ta có mã PHP xử lý tương ứng. + Câu lệnh Select : trả về mảng các record + Các câu lệnh khác : true/false tùy theo sự thành công hay không a)Câu lệnh SQL : Select… $strSQL=“Select * from table_name”; //nếu câu lệnh SQL dài, phức tạp. $result = mysql_query($strSQL); if($result) { trích xuất dữ liệu trong mảng $result;} // !? else {echo “Records not found!”;} Môn Các Hệ Thống Mã Nguồn Mở 5 Thực Thi Câu Lệnh SQL (tt) b) Câu lệnh SQL : Create Database $result=mysql_query("CREATE DATABASE database_name",$con ); if($result) {echo “Database created!”;} else {echo “Could’nt create database,” .mysql_error();} Tuy nhiên, để đảm bảo các field kiểu char có thể dữ liệu theo mã UTF-8 thì cần thay đổi câu lệnh SQL: $strSQL="CREATE DATABASE VD2”; $strSQL+= “DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci"; $result=mysql_query($strSQL,$con ); if($result) {echo “Database created!”;} else {echo “Could’nt create database,”.mysql_error();} - Ta thường tạo CSDL thông qua một công cụ riêng, ít khi sử dụng câu lệnh như trên. Tuy nhiên, tạo table lại hay sử dụng. - Collate: đối chiếu, kiểm tra thứ tự (trang). Môn Các Hệ Thống Mã Nguồn Mở 6 c- Câu lệnh SQL: Create table $sql = "CREATE TABLE table_name ( field_name data_type[(length)] constraint,… ) ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci"; Ví dụ : $sql=“Create table SV (Ma varchar(11) NOT NULL ,”; $sql+=HoTen varchar(30) not null , primary key(Ma)”; $sql+=“) engine = MyISAM” ; $result = mysql_query($sql,$con); if(!$result) {echo “Error”.mysql_error();} else { // mã PHP phù hợp} Môn Các Hệ Thống Mã Nguồn Mở 7 d- Câu lệnh Insert, Update $sql=“Insert into table_name(field_list) values(value_list); $result=mysql_query($sql); if(!$result) {echo mysql_error(); // xử lý tiếp;} else { //xử lý …} Việc sử dụng câu lệnh Upadte cũng tương tự Lỗi xảy ra nếu vi phạm một trong các ràng buộc toàn vẹn dữ liệu. -Sử dụng hàm die() một cách hợp lý -Sử dụng transaction để điều khiển mạch chương trình. Xem bài đọc thêm PHP trên trang web của giảng viên Môn Các Hệ Thống Mã Nguồn Mở e- Câu lệnh SQL: Select… $sql = “Select …..”; $result = mysql_query($sql); if(!$result) { echo “Record not found!”; } else { while($row = mysql_fetch_array($result)){ echo $row[‘firstField'] . " " . $row[‘secondField']; echo "
"; } } // else mysql_close($con); // đóng kết nối Câu lệnh Select … from … where … limit start, total trong MySQL Trong đó start: là bắt đầu từ record số start (>=0), Record đầu tiên thứ tự là 0 Total : là tổng số record được hiển thị. Đây là đặc điểm riêng của MySQL fetch : nạp vào, tìm và nạp vào, $row là một mảng với key là fieldname Chúng ta còn phương pháp khác duyệt “tập các record”, xem trang sau. 8 Môn Các Hệ Thống Mã Nguồn Mở 9 Hàm mysql_fetch_array Cú pháp: mysql_fetch_array(data [, array_type]); Array_type có thể là: MySQL_Assoc : mảng kết hợp, key của mảng là field_name MySQL_Num : key của mảng là chỉ số MySQL_Both : cả hai khả năng trên, đây là kiểu mặc định. Vì không khai báo array_type, tức là MySQL_Both, do vậy (1) có thể: while($row = mysql_fetch_array($result)){ echo $row[0] . " " . $row[1]; echo "
"; } Môn Các Hệ Thống Mã Nguồn Mở Tiếng Việt trong PHP - Phần không sử dụng CSDL MySQL, phải đảm bảo: Lưu tệp với mã UTF-8 (*) Khai báo trong phần head - Phần sử dụng CSDL MySQL, phải đảm bảo: Khai báo câu lệnh mysql_query(“SET NAMES ‘utf8’”) trước câu lệnh mysql_query($sql) với $sql là một câu lệnh Select. Ví dụ: $sql = “Select …..”; mysql_query(“SET NAMES ‘utf8’”); (*) $result = mysql_query($sql); if(!$result) { echo “Record not found!”; } else { while($row = mysql_fetch_array($result)){ echo $row[‘firstField'] . " " .$row[‘secondField'].”
”;} } 10
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.