Chương 3 : SỬ DỤNG PHPVỚI MYSQL Ở chương 2, chúng ta đã tạo được trang Webvới việc sử dụng những hàm. Nhưng chúng ta chưa thực sự hiểu mối quan hệ giữa MySQL và PHP. Trong chương này chúng ta sẽ xét kỹ điều này. Trong chương này nói đến các vấn đề: Hiểu biết về cơ sở dữ liệu MYSQL. Những dữ liệu chứa trong MySQL. Tác động những thông tin đặc biệt, quyền từ Web site. Phần mềm quản lý bảng dễ dàng. Có thể sửa chữa code theo ý muốn. Bắt đầu với My SQL và PHP như thế nào? Một vài hàm thường dùng là: mysql_connect ("hostname", "user", "pass"): Kết nối đến MY SQL server. mysql_select_db("database name"): Tương đương với lệnh USE trong My SQL, làm cho cơ sở dữ liệu được chọn hoạt động mysql_query("query"): Gởi bất kỳ câu lệnh của My SQL đến server mysql_fetch_rows("biến kết quả từ truy vấn"): Trả về một dòng kết quả trong một dữ liệu truy vấn mysql_fetch_array("biến kết quả từ truy vấn"): Trả về nhiều dòng kết quả của truy vấn mysql_error(): Đưa ra lỗi được trả về từ My SQL server Bạn có thể gởi bất kỳ My SQL nào đến server thông qua câu lệnh PHP hoặc câu lệnh Mysql_query. Ví dụ: $query = “SELECT * from TABLE”; $results = mysql_query($query); Bạn cũng có thể dùng như sau: $results = mysql_query(“SELECT * from TABLE”); Kết nối MY SQL Server Lệnh kết nối với hàm PHP là mysql_connect, với cú pháp như sau: $host = “localhost”; $user = “bp5am”; $pass = “bp5ampass”; $connect = mysql_connect($host, $user, $pass); Trong đó : $host là tên của máy chủ $user:tên của máy người dùng $pass:mật khẩu truy cập của người dùng Đọc, tạo cơ sở dữ liệu Để tạo một cơ sở dữ liệu cho bạn cần 3 bảng: Một bảng movie: Ta sẽ lưu trữ tên và thông tin của movie. Một bảng movietype: Nơi lưu trữ những catalog của movie. Một bảng people: Ta sẽ lưu trữ tên của các diễn viên và đạo diễn. Ví dụ tạo cơ sở dữ liệu và bảng Tạo trang phpvới tên: createmovie.php <?php //connect to MySQL; note we‟ve used our own parameters- you should use //your own for hostname, user, and password $connect = mysql_connect(“localhost”, “root”, “”) or die (“Hey loser, check your server connection.”); //create the main database if it doesn‟t already exist $create = mysql_query(“CREATE DATABASE IF NOT EXISTS moviesite”) or die(mysql_error()); //make sure our recently created database is the active one mysql_select_db(“moviesite”); //create “movie” table $movie = “CREATE TABLE movie ( movie_id int(11) NOT NULL auto_increment, movie_name varchar(255) NOT NULL, movie_type tinyint(2) NOT NULL default 0, movie_year int(4) NOT NULL default 0, movie_leadactor int(11) NOT NULL default 0, movie_director int(11) NOT NULL default 0, PRIMARY KEY (movie_id), KEY movie_type (movie_type,movie_year))”; $results = mysql_query($movie) or die (mysql_error()); //create “movietype” table $movietype = “CREATE TABLE movietype ( movietype_id int(11) NOT NULL auto_increment, movietype_label varchar(100) NOT NULL, PRIMARY KEY (movietype_id))”; $results = mysql_query($movietype) or die(mysql_error()); //create “people” table $people = “CREATE TABLE people ( people_id int(11) NOT NULL auto_increment, people_fullname varchar(255) NOT NULL, people_isactor tinyint(1) NOT NULL default 0, people_isdirector tinyint(1) NOT NULL default 0, PRIMARY KEY (people_id))”; $results = mysql_query($people) or die(mysql_error()); echo “Movie Database successfully created!”; ?> Tiếp theo ta tạo trang phpvới tên: moviedata.php <?php //connect to MySQL $connect = mysql_connect(“localhost”, “root”, “”) or die (“Hey loser, check your server connection.”); //make sure we‟re using the right database mysql_select_db(“moviesite”); //insert data into “movie” table $insert = “INSERT INTO movie (movie_id, movie_name, movie_type, “ . “movie_year, movie_leadactor, movie_director) “ . “VALUES (1, „Bruce Almighty‟, 5, 2003, 1, 2), “ . “(2, „Office Space‟, 5, 1999, 5, 6), “ . “(3, „Grand Canyon‟, 2, 1991, 4, 3)”; $results = mysql_query($insert) or die(mysql_error()); //insert data into “movietype” table $type = “INSERT INTO movietype (movietype_id, movietype_label) “ . “VALUES (1,‟Sci Fi‟), “ . “(2, „Drama‟), “ . “(3, „Adventure‟), “ . “(4, „War‟), “ . “(5, „Comedy‟), “ . “(6, „Horror‟), “ . “(7, „Action‟), “ . “(8, „Kids‟)” ; $results = mysql_query($type) or die(mysql_error()); //insert data into “people” table $people = “INSERT INTO people (people_id, people_fullname, “ .“people_isactor, people_isdirector) “ . “VALUES (1, „Jim Carrey‟, 1, 0), “ . “(2, „Tom Shadyac‟, 0, 1), “ . “(3, „Lawrence Kasdan‟, 0, 1), “ . “(4, „Kevin Kline‟, 1, 0), “ . “(5, „Ron Livingston‟, 1, 0), “ . “(6, „Mike Judge‟, 0, 1)”; $results = mysql_query($people) or die(mysql_error()); echo “Data inserted successfully!”; ?> Chúng làm việc như thế nào? Đầu tiên ta thực hiện kết nối đến My SQL server, sau đó tạo lập cơ sở dữ liệu nếu không tạo được sẽ đưa ra thông báo lỗi. Sau đó bắt đầu tạo từng bảng riêng lẻ Đưa dữ liệu vào các bảng Truy vấn cơ sở dữ liệu Chúng ta đã tạo ra cơ sở dữ liệu, bây giờ muốn nhận lại thông tin từ dữ liệu đó, dùng công thức như sau: SELECT [fieldnames] AS [alias] FROM [tablename] WHERE [criteria] ORDER BY [fieldname to sort on] [DESC] LIMIT [offset, maxrows] SELECT [fieldnames]: Quyết định đầu tiên mà vùng chứa tên đặc biệt mà bạn muốn nhận lại. Nếu bạn muốn thấy tất cả thông tin bạn chỉ cần chọn dấu * AS: Bạn có thể sử dụng bí danh để nhóm hai hoặc nhiều hơn hai vùng khác nhau mà có thể chuyển đến chúng * như là một biến lớn SELECT first_name, last_name AS full_name. . . ORDER BY full_name . . . Bạn không thể sử dụng tham số AS với tham số WHERE, bởi vì nó bị giới hạn trong MY SQL. Khi WHERE được thực thi thì cột giá trị không biết FROM: Tên bảng cần truy xuất thông tin WHERE: Danh sách điều kiện chọn lọc dữ liệu ORDER BY: Để sắp xếp dữ liệu trong vùng LIMIT: Giới hạn kết quả trả về Bắt đầu với My SQL và PHP như thế nào? Một vài hàm thường dùng là: mysql_connect ("hostname", "user", "pass"): Kết nối đến MY SQL server. mysql_select_db("database name"): Tương đương với lệnh USE trong My SQL, làm cho cơ sở dữ liệu được chọn hoạt động mysql_query("query"): Gởi bất kỳ câu lệnh của My SQL đến server mysql_fetch_rows("biến kết quả từ truy vấn"): Trả về một dòng kết quả trong một dữ liệu truy vấn mysql_fetch_array("biến kết quả từ truy vấn"): Trả về nhiều dòng kết quả của truy vấn mysql_error(): Đưa ra lỗi được trả về từ My SQL server Bạn có thể gởi bất kỳ My SQL nào đến server thông qua câu lệnh PHP hoặc câu lệnh Mysql_query. Ví dụ: $query = “SELECT * from TABLE”; $results = mysql_query($query); Bạn cũng có thể dùng như sau: $results = mysql_query(“SELECT * from TABLE”); Kết nối MY SQL Server Lệnh kết nối với hàm PHP là mysql_connect, với cú pháp như sau: $host = “localhost”; $user = “bp5am”; $pass = “bp5ampass”; $connect = mysql_connect($host, $user, $pass); Trong đó : $host là tên của máy chủ $user:tên của máy người dùng $pass:mật khẩu truy cập của người dùng . Ví dụ tạo cơ sở dữ liệu và bảng Tạo trang php với tên: createmovie .php < ?php //connect to MySQL; note we‟ve used our own parameters- you should use //your. DỤNG PHP VỚI MYSQL Ở chương 2, chúng ta đã tạo được trang Web với việc sử dụng những hàm. Nhưng chúng ta chưa thực sự hiểu mối quan hệ giữa MySQL và PHP.