Hướng dẫn mysqli php
PHP có một bộ sưu tập của các hàm MySQLi được xây dựng sẵn để thao tác cơ sở dữ liệu. Show
Trong bài này bạn sẽ được học về:
Cách thao tác với CSDL sử dụng hàm MySQLi trong PHP 1. Hàm mysqli_connect trong PHPHàm mysqli_connect được sử dụng để kết nối với một MySQL database server. Hàm mysqli có cú pháp sau: $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); Giải thích cú pháp của hàm mysqli_connect:
2. Hàm mysqli_select_dbCác hàm mysqli_select_db được sử dụng để chọn một cơ sở dữ liệu. Hàm mysqli_select có cú pháp như sau: mysqli_select_db(connection, dbname); Giải thích hàm mysqli_select_db:
3. Hàm mysqli_query trong PHPCác hàm mysqli_query() thực hiện một truy vấn đến database Cú pháp hàm mysqli_query(): mysqli_query(connection, query, resultmode); Giải thích về hàm mysqli_query():
Đối với kết quả truy vấn SELECT, SHOW, DESCRIBE, hoặc EXPLAIN thành công sẽ trả về object. Các kết quả truy vấn thành công khác trả về > Các truy vấn được truyền vào là SQL. Nếu bạn chưa biết về SQL thì HỌC SQL CĂN BẢN tại đây nhé. 4. Hàm mysqli_num_rows trong PHPCác hàm mysqli_num_rows() trả về số lượng hàng trong một tập kết quả. Cú pháp hàm mysqli_num_rows():
5. Hàm mysqli_fetch_array trong PHPHàm mysqli_fetch_array() tìm nạp một hàng kết quả dưới dạng một mảng kết hợp, một mảng số hoặc cả hai.> Lưu ý: Các fieldname trả về từ hàm này là phân biệt hoa thường. Cú pháp hàm mysquli_fetch_arry: mysqli_fetch_array(result, resulttype);
Hàm mysqli_fecth_array trả về một mảng chuỗi tương ứng với các lấy hàng. Null nếu không có thêm hàng nào trong kết quả trả về. 6. Hàm mysqli_close() trong PHPHàm mysqli_close() thực hiện việc đóng kết nối cơ sở dữ liệu đã kết nối trước đó. Cú pháp hàm mysqli_close(): mysqli_close(connection);
Giá trị trả về của hàm mysqli_close() là True nếu thành công và False nếu thất bại 7. Ví dụ sử dụng các hàm MySQLi đã cho để kết nối với cơ sở dữ liệu.Hãy cùng xem các ví dụ thực tế tận dụng các hàm MySQLi này. Trước tiên ta tạo một database bằng MySQL. Giả định bạn đã biết về MySQL và SQL. Nếu không thì bạn chỉ cần copy code là được. Chúng ta sẽ tạo một cơ sở dữ liệu đơn giản gọi là 3 bước để tạo cơ sở dữ liệu và bảng:
CREATE TABLE IF NOT EXISTS `my_contacts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `full_names` varchar(255) NOT NULL, `gender` varchar(6) NOT NULL, `contact_no` varchar(75) NOT NULL, `email` varchar(255) NOT NULL, `city` varchar(255) NOT NULL, `country` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 5 ; INSERT INTO `my_contacts` ( `id`, `full_names`, `gender`, `contact_no`, `email`, `city`, `country`) VALUES (1, 'Zeus', 'Male', '111', '', 'Agos', 'Greece'), (2, 'Anthena', 'Female', '123', '', 'Athens', 'Greece'), (3, 'Jupiter', 'Male', '783', '', 'Rome', 'Italy'), (4, 'Venus', 'Female', '987', 'venu @planet.pt.co', 'Mars', 'Italy'); ?> Bây giờ chúng ta có một cơ sở dữ liệu được thiết lập mà chúng ta sẽ thao tác từ PHP. Đọc các bản ghi từ cơ sở dữ liệu. Bây giờ chúng ta sẽ tạo một chương trình in các bản ghi từ cơ sở dữ liệu. $dbh = mysqli_connect('localhost', 'root', 'melody'); // Kết nối tới MySQL server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); // Nếu kết nối thất bại thì đưa ra thông báo lỗi if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysqli_error()); // Thông báo lỗi nếu chọn CSDL thất bại $sql_stmt = "SELECT * FROM my_contacts"; // Câu lệnh select $result = mysqli_query($dbh,$sql_stmt); // Thực thi câu lệnh SQL if (!$result) die("Database access failed: " . mysqli_error()); // Thông báo lỗi nếu thực thi thất bại $rows = mysqli_num_rows($result); // Lấy số hàng trả về if ($rows) { while ($row = mysqli_fetch_array($result)) { echo 'ID: ' . $row['id'] . ' echo 'Full Names: ' . $row['full_names'] . ' echo 'Gender: ' . $row['gender'] . ' echo 'Contact No: ' . $row['contact_no'] . ' echo 'Email: ' . $row['email'] . ' echo 'City: ' . $row['city'] . ' echo 'Country: ' . $row['country'] . ' } } mysqli_close($dbh); // Đóng kết nối CSDL ?> Thực thi đoạn code trên trả về kết quả được hiển thị như trong hình bên dưới đây. In các bản ghi từ cơ sở dữ liệu Chúng ta thực hiện chèn các bản ghi mới. Nào, hãy xem xét một ví dụ có thêm bản ghi mới vào bảng của chúng ta. Code dưới đây cho bạn thấy việc thực hiện. $dbh = mysqli_connect('localhost', 'root', 'melody'); // Kết nối với MySQL Server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); // Thông báo lỗi nếu kết nối thất bại if (!mysqli_select_db($dbh, 'my_personal_contacts')) die("Unable to select database: " . mysql_error()); // Thông báo lỗi nếu chọn CSDL thất bại $sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)"; $sql_stmt .= "VALUES('Poseidon','Mail','541',' ','Troy','Ithaca')"; $result = mysqli_query($dbh, $sql_stmt); // Thực thi câu lệnh SQL if (!$result) { die("Adding record failed: " . mysqli_error()); // Thông báo lỗi nếu thực thi câu lệnh thất bại } else { echo "Poseidon has been successfully added to your contacts list"; } mysqli_close($dbh); // Đóng kết nối CSDL ?> Thực thi các câu lệnh trên cho kết quả “Poseidon has been successfully added to your contacts list”, quay trở lại ví dụ truy vấn đã chọn và truy xuất lại contacts. Xem nếu Poseidon đã được thêm vào danh sách. Cập nhật bản ghi, bây giờ hãy xem một ví dụ cập nhật một bản ghi trong cơ sở dữ liệu. Giả sử Poseidon đã thay đổi số điện thoại và địa chỉ email của mình. $dbh = mysqli_connect('localhost', 'root', 'melody'); // Kết nối tới MySQL Server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); // Thông báo lỗi nếu kết nối thất bại if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysql_error()); // Thông báo lỗi nếu chọn CSDL thất bại $sql_stmt = "UPDATE `my_contacts` SET `contact_no` = '785',`email` = ''"; $sql_stmt .= "WHERE `id` = 5"; $result = mysqli_query($dbh,$sql_stmt); // Thực thi câu lệnh SQL if (!$result) { die("Deleting record failed: " . mysqli_error()); // Thông báo lỗi nếu thực thi thất bại } else { echo "ID number 5 has been successfully updated"; } mysqli_close($dbh); //close the database connection ?> Xóa bản ghiBây giờ hãy xem một ví dụ loại bỏ các bản ghi khỏi cơ sở dữ liệu. Chúng ta phải xóa Venus khỏi cơ sở dữ liệu của chúng ta. $dbh = mysqli_connect('localhost', 'root', 'melody'); // Kết nối với MySQL Server if (!$dbh) die("Unable to connect to MySQL: " . mysqli_error()); // Thông báo lỗi nếu kết nối thất bại if (!mysqli_select_db($dbh,'my_personal_contacts')) die("Unable to select database: " . mysqli_error()); // Thông báo lỗi nếu chọn CSDL thất bại $id = 4; // ID của Venus trong CSQL $sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id"; // Câu lệnh SQL Delete $result = mysqli_query($dbh,$sql_stmt); // Thực thi câu lệnh SQL if (!$result) { die("Deleting record failed: " . mysqli_error()); // Thông báo lỗi nếu thực thi thất bại } else { echo "ID number $id has been successfully deleted"; } mysqli_close($dbh); // Đóng kết nối CSDL ?> 8. Truy cập dữ liệu bằng cách sử dụng PDO trong PHPPDO là một class cho phép chúng ta thao tác với các cơ sở dữ liệu khác nhau như MySQL, PostGres, MS SQL Server, v.v ... Đoạn code dưới đây cho thấy phương thức truy cập cơ sở dữ liệu bằng cách sử dụng PDO. Chú ý: Đoạn code dưới đây giả định bạn đã biết kiến thức SQL, mảng, xử lý ngoại lệ và vòng lặp foreach try { $pdo = new PDO("mysql:host=localhost;dbname=my_personal_contacts", 'root', 'melody'); $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo -> exec('SET NAMES "utf8"'); $sql_stmt = "SELECT * FROM `my_contacts`"; $result = $pdo->query($sql_stmt); $result -> setFetchMode(PDO::FETCH_ASSOC); $data = array(); foreach ($result as $row) { $data[] = $row; } print_r($data); } catch (PDOException $e) { echo $e -> getMessage(); } ?>
ODBC là viết tắt của Open Database Connectivity. Nó có cú pháp cơ bản sau. $conn = odbc_connect($dsn, $user_name, $password);
Ví dụ bên dưới đây giả sử:
$dbh = odbc_connect('northwind', '', ''); if (!$dbh) { exit("Connection Failed: " . $dbh); } $sql_stmt = "SELECT * FROM customers"; $result = odbc_exec($dbh, $sql_stmt); if (!$result) { exit("Error access records"); } while (odbc_fetch_row($result)) { $company_name = odbc_result($result, "CompanyName"); $contact_name = odbc_result($result, "ContactName"); echo "Company Name (Contact Person): $company_name ($contact_name) } odbc_close($dbh); ?> Tổng kếtQua bài hướng dẫn này bạn đã biết các hàm MySQLi cơ bản để sử dụng thao tác với CSDL trong PHP, cũng như cách thức sử dụng PDO để thay thế.
> Nếu bạn đang tích cực học PHP để đi làm thì nên tham gia ngay khóa học LẬP TRÌNH WEB PHP. Khóa học do doanh nghiệp liên kết đào tạo nhân lực, học thực tế, tuyển dụng ngay cuối khóa. --- HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay! Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội SĐT: 02435574074 - 0914939543 Email: Fanpage: https://facebook.com/NIIT.ICT/ #niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #php |