CHƯƠNG 2 ỨNG DỤNG THU THẬP LẤY TIN TỰ ĐỘNG TRÊN
2.8 Các hàm PHP thao tác với CSDL MySQL
Các hàm này cho phép bạn truy cập các server CSDL MySQL ..để dùng các hàm này bạn phải biên dịch PHP với hỗ trợ MySQL bằng cách sử dụng lựa chọn – with-mysql. Nếu bạn sử dụng lựa chọn này mà không chỉ rõ đường dẫn tới MySQL, PHP sẽ sử dụng các thư viện client đã được xây dựng sẵn. Các user chạy các ứng dụng khác có sử dụng MySQL nên chỉ rõ đường dẫn tới MySQL: - with-mySQL = /path/to/MySQL.
2.8.1 Mysql_affected_rows.
Cú pháp: int mysql_affected_rows([int linhk_identifier])
Trả về số các dòng của thao tác MySQL trước đó. Nó trả về số dòng bị ảnh hưởng bởi các câu truy vấn:INSERT, UPDATE hoặc DELETE trên server kết
gắn với một chỉ số liên kết cụ thể. Nếu chỉ số liên kết không được chỉ rõ liên kết mở cuối cùng sẽ được chọn.
Nếu câu truy vấn cuối cùng là DELETE không có mệnh đề WHERE tất cả các bản ghi sẽ bị xóa khỏi bảng nhưng hàm này lại trả về 0.
Lệnh này không có hiệu quả với lệnh SELECT chỉ trên các lệnh sửa đổi bản ghi.
Để thu được số các cột trả về từ lệnh SELECT sử dụng mysql_num_rows( )
2.8.2 Mysql_change_user
Cú pháp: int mysql_change_user(string user, string password[,string database [,int linhk_identifie]])
Thay đổi sự cập nhật của người dùng trong kết nối tích cực hiện tại hoặc kết nối được truyền tham số lựa chọn linh_identifier. Nếu một CSDL được chỉ rõ nó sẽ mặc định CSDL hiện tại sau khi người dùng thay đổi
2.8.3 Mysql_close
Cú pháp: int mysql_close([int identifier])
Đóng kết nối MySQL hiện tại. Nó trả về true nếu thành công ngược lại trả về fasle. Việc sử dụng mysql_close( ) thường là không cần thiết, khi các liên kết mở không cố định vì nó sẽ tác động đóng ở cuối kịch bản, mysql_close( ) sẽ không đóng các liên kết cố định được tạo bởi mysql_pconnect( )
2.8.4 Mysql_connect
Cú pháp: int mysql_connect([string hostname [:post] [:/path/to/sokect] [,string username [,string password]]])
Mở một kết nối tới một MySQL Server, giá trị trả về là một liên kết tích cực nếu thành công ngược lại sẽ có một thông báo lỗi. Hàm này thiết lập một kết nối tới một MySQL Server, các tham số có giá trị mặc định như sau:
Host: post = ‘localhost:3306’
Usernamw = tên của người dùng trên server
Password = ‘’_để trống
Xây hostname có thể chứa một số hiệu cổng ”hostname:post” hoặc một đường dẫn tới một socket “:/path/to/socket” đối với localhost
Chú ý: Trong PHP3.OB4 mới hỗ trợ “:post” và “:/path/to/socket”
Nếu có một lời gọi hàm thứ hai với các tham số tương tự sẽ không tạo ra liên kết mới mà nó thay thế liên kết cũ bằng liên kết mới. Liên kết sẽ đóng ngay sau khi kịch bản thực hiện xong trừ khi nó được đóng trước khi kịch bản kết thúc bằng lệnh mysql_close( ).
2.8.5 Mysql_create_db
Cú pháp: int mysql_create_db( string db_name[,int link_identifier])
Tạo một cơ sở dữ liệu MySQL hàm này thử tạo một CSDL mới trên server được liên kết với link_identifier.
2.8.6 Mysql_data_seek
Cú pháp: int mysql_data_seek( int result_identifier, int row_number)
Dịch chuyển con trỏ kết quả bên trong, trả về true nếu thành công, fasle ngược lại. Hàm này dịch chuyển con trỏ hàng bên trong kết quả MySQL liên kết với result_identifier để trỏ tới hàng row_number lời gọi tiếp theo của hàm mysql_fetch_row( ) sẽ trả về giá trị bằng row_number bắt đầu từ 0.
2.8.7 Mysql_db_name
Cú pháp: int mysql_db_name( int result, int row[,mixed field])
Lấy dữ liệu kết quả. Hàm này lấy tham số đầu tiên của nó từ lời gọi hàm mysql_list_dbs ( ). Tham số row là một chỉ số tập hợp kết quả. Nếu xuất hiện lỗi giá trị trả về false, sử dụng mysql_errno( ) và mysql_error( ) để lấy lỗi.
2.8.8 mysql_query( )
Cú pháp: int mysql_query( string query[,int link_identifier])
Gửi một lệnh truy vấn tới server, nếu link_identifier không được chỉ rõ liên kết cuối cùng sẽ được sử dụng, nếu không có liên kết nào được mở hàm sẽ thiết lập một liên kết giống như hàm mysql_connect( ) được gọi không tham số và dùng nó.
Hàm trả về true hoặc fasle để xác định xem câu truy vấn có thành công hay không. True có nghĩa là hợp lệ và có thể thực hiện được.
Mysql_query( ) cũng sẽ bị lỗi nếu bạn không được phép truy cập đến bảng tham chiếu trong câu lệnh truy vấn của mình. Giả sử câu lệnh truy vấn thành công bạn có thể gọi mysql_num_rows( ) để tìm xem có bao nhiêu hàng được trả về bằng lệnh SELECT hoặc gọi mysql_affected( ) để xem có bao nhiêu hàng bị ảnh hưởng bởi lệnh DELETE, INSERT, REPLACE hoặc UPDATE.
Đối với lệnh SELECT, mysql_query( ) trả về một id kết quả mà bạn có thể truyền tới hàm mysql_result( ). Khi bạn thực hiện xong với tập kết quả bạn có thể giải phóng nó bằng lệnh mysql_free_result( ) mặc dù bộ nhớ sẽ giải phóng tự động ở cuối kịch bản.
2.8.9 Mysql_result
Cú pháp: mixed mysql_result( int result, int row[,mixed field])
Lấy dữ liệu kết quả. Hàm này trả về nội dung một ô từ tập kết quả, tham chiếu trường có thể là địa chỉ offset của trường hoặc tên trường hoặc tên bảng.tên trường. Nếu tên cột được gán bí danh có thể sử dụng bí danh thay tên cột. Khi làm việc trên tập kết quả lớn bạn nên xem xét việc sử dụng một trong các hàm trả về thực hàng. Bởi vì các hàm trả về nội dụng của nhiều ô trong một lời gọi hàm.
2.8.10 Mysql_select_db
Cú pháp: int mysql_select_db( string database_name[, int link_identifier]) Chọn một CSDL trên server, hàm trả về true nếu thành công fasle nếu ngược lại.
Hàm này sẽ thiết lập một liên kết giữa CSDL tích cực hiện tại trên server với một id. Nếu không có id liên kết nào được chỉ rõ, liên kết cuối cùng sẽ được sử dụng.
Nếu liên kết không được mở hàm sẽ thử thiết lập một liên kết giống như hàm mysql_connect( ).
2.8.11 Mysql_tablename
Cú pháp: string mysql_tablename( int result, int i)
Lấy tên bảng của trường hàm lấy con trỏ được trả về bằng bởi hàm giống như một chỉ số nguyên và trả về tên của bảng, mysql_num_row( ) có thể được sử dụng để xác định số các bảng trong con trỏ kết quả.