<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>PHP MYSQL</b>
</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
<b>Tổng quan về MySQL</b>
<b><sub>MySQL</sub></b>
<sub> là một trong những </sub>
<b><sub>hệ cơ sở dữ liệu quan hệ </sub></b>
<sub>phổ biến </sub>
đang được sử dụng trên Web. Nó có sẵn miễn phí và dễ cài đặt.
<b><sub>Ưu điểm của MySQL database server </sub></b>
<sub>Dễ sử dụng, mạnh mẽ, nhanh chóng, an tồn và có thể mở rộng.</sub>
<sub>Chạy trên nhiều hệ điều hành: UNIX, Windows, Mac và các hệ điều </sub>
hành khác.
<sub>Hỗ trợ SQL chuẩn.</sub>
<sub>Là giải pháp cơ sở dữ liệu lý tưởng cho cả các ứng dụng nhỏ và lớn.</sub>
<sub>Được phát triển và phân phối bởi Oracle Corporation.</sub>
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
<b>Kết nối với MySQL Server</b>
<sub>PHP cung cấp hai cách kết nối với MySQL server: </sub>
<sub>MySQLi (</sub>
<b><sub>I</sub></b>
<sub>mproved </sub>
<b><sub>MySQL</sub></b>
<sub>) </sub>
<sub>PDO (</sub>
<b><sub>P</sub></b>
<sub>HP </sub>
<b><sub>D</sub></b>
<sub>ata </sub>
<b><sub>O</sub></b>
<sub>bjects)</sub>
<b><sub>Hàm mysqli_connect (): </sub></b>
<sub>giao tiếp giữa </sub>
<b><sub>PHP</sub></b>
<sub> và </sub>
<b><sub>MySQL </sub></b>
</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>
<b>Kết nối với MySQL Server</b>
<b><sub>Phương pháp thủ tục</sub></b>
<b><sub>:</sub></b>
<b><sub>Cú pháp</sub></b>
<sub>:</sub>
<i><b><sub>hostname: chỉ định tên máy chủ (ví dụ: localhost) hoặc địa chỉ IP </sub></b></i>
của máy chủ MySQL
<i><b><sub>Username và password: chỉ định thông tin đăng nhập để truy cập </sub></b></i>
máy chủ MySQL
<i><b><sub>Databse: nếu được cung cấp sẽ chỉ định CSDL MySQL mặc định </sub></b></i>
được sử dụng khi thực hiện các truy vấn.
</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>
<b>Kết nối với MySQL Server</b>
<b><sub>Phương pháp thủ tục</sub></b>
<b><sub>:</sub></b>
<b><sub>Ví dụ</sub></b>
<sub>:</sub>
<b> </b>
<b>$servername</b>
<b> </b>
<b>=</b>
<b> </b>
<b>"</b>
<b>localhost</b>
<b>";</b>
<b> </b>
<b>$username</b>
<b> </b>
<b>=</b>
<b> </b>
<b>"</b>
<b>username</b>
<b>";</b>
<b> </b>
<b>$password</b>
<b> </b>
<b>=</b>
<b> </b>
<b>"</b>
<b>password</b>
<b>";</b>
<b> </b>
<i><b>// Create connection</b></i>
<b> </b>
<b>$conn</b>
<b> </b>
<b>=</b>
<b> </b>
<b>mysqli_connect</b>
<b>($servername,</b>
<b> </b>
<b>$username,</b>
<b> </b>
<b>$passwo</b>
<b>rd);</b>
<b> </b>
<i><b>// Check connection</b></i>
<b> </b>
<b>if</b>
<b> </b>
<b>(!$conn)</b>
<b> </b>
<b>{</b>
<b> </b>
<b>die("</b>
<b>Connection failed: </b>
<b>"</b>
<b> </b>
<b>.</b>
<b> </b>
<b>mysqli_connect_error</b>
<b>());</b>
<b> </b>
<b>}</b>
</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
<b>Kết nối với MySQL Server</b>
<b><sub>Phương pháp hướng đối tượng - PDO</sub></b>
<sub>:</sub>
<b><sub>Cú pháp</sub></b>
<sub>: </sub>
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>
<b>Kết nối với MySQL Server</b>
<b><sub>Phương pháp hướng đối tượng - PDO</sub></b>
<sub>:</sub>
<b><sub>Ví dụ: </sub></b>
<b><?php</b>
<b> </b>
<b>$servername =</b>
<b> </b>
<b>"</b>
<b>localhost</b>
<b>";</b>
<b> </b>
<b>$username =</b>
<b> </b>
<b>"</b>
<b>username</b>
<b>";</b>
<b> </b>
<b>$password =</b>
<b> </b>
<b>"</b>
<b>password</b>
<b>";</b>
<b> </b>
<i><b>// Create connection</b></i>
<b> </b>
<b>$conn =</b>
<b> new mysqli</b>
<b>($servername,</b>
<b> </b>
<b>$username,</b>
<b> </b>
<b>$password)</b>
<b>;</b>
<b> </b>
<i><b>// Check connection</b></i>
<b> </b>
<b>if</b>
<b> </b>
<b>($conn->connect_error)</b>
<b> </b>
<b>{</b>
<b> </b>
<b>die("</b>
<b>Connection failed: </b>
<b>"</b>
<b> </b>
<b>.</b>
<b> </b>
<b></b>
<b>$conn->connect_error);</b>
</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>
<b>Đóng kết nối</b>
<sub>Kết nối sẽ tự động đóng khi tập lệnh kết thúc. </sub>
<b><sub>Đóng kết nối theo phương pháp </sub></b>
<b><sub>hướng đối tượng</sub></b>
<b><sub>Đóng kết nối theo phương pháp </sub></b>
<b><sub>thủ tục</sub></b>
<b><?php</b>
<b> </b>
<b>mysqli_close</b>
<b>($</b>
<b>conn</b>
<b>);</b>
<b>?></b>
<b><?php</b>
</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>
<b>Tạo cơ sở dữ liệu trong MySQL</b>
<b><sub>Tạo CSDL trong phpMyAdmin:</sub></b>
</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>
<b>Tạo cơ sở dữ liệu trong MySQL</b>
<sub>Trong XAMPP đã có sẵn phpMyAdmin, click </sub>
<i><sub>Admin</sub></i>
<sub> tương </sub>
</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>
<b>Tạo cơ sở dữ liệu trong MySQL</b>
<b><sub>Tạo database:</sub></b>
• Click tab
<i><b>Databases</b></i>
, xuất hiện màn hình tạo database,
trong phần
<i>Create database</i>
:
•
<b>Database name</b>
: điền tên database.
•
<b>Collation</b>
: chọn dạng ngơn ngữ hiển thị, chọn
<b>utf8_general_ci</b>
.
</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>
<b>Tạo cơ sở dữ liệu trong MySQL</b>
<b><sub>Tạo database:</sub></b>
</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>
<b>Tạo cơ sở dữ liệu trong MySQL</b>
<b><sub>Tạo user kết nối database:</sub></b>
• Mặc định, người dùng có thể sử dụng luôn username
<i><b>root</b></i>
của
MySQL để kết nối database, tuy nhiên về lý do bảo mật, nên tạo
riêng cho
<i><b>mỗi database một username riêng</b></i>
.
•
<b><sub>Cách tạo:</sub></b>
• Click vào tên
<i>CSDL</i>
từ danh sách database bên trái
• Chọn tab
<i><b>Privileges</b></i>
.
</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>
<b>Tạo cơ sở dữ liệu trong MySQL</b>
</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>
<b>Tạo cơ sở dữ liệu trong MySQL</b>
<b><sub>Tạo user kết nối database:</sub></b>
<b><sub>Tại màn hình tạo tài khoản</sub></b>
<sub>①: Set user name: nhập tên user_tintuc.</sub>
②: host Name: localhost
③: Set password: thiết lập password, ví dụ: 123456.
<sub>④</sub>
<sub>: Re-type: xác nhận lại mật khẩu.</sub>
</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>
<b>Tạo cơ sở dữ liệu trong </b>
<b>MySQL</b>
</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>
<b>Tạo cơ sở dữ liệu MySQL bằng PHP</b>
<b><?php</b>
<b> </b>
<i><b>/*giaả sửả đã kếết nốếi vói server và user 'root' khống </b></i>
<i><b>pass)*/</b></i>
<b> </b>
<b>$link</b>
<b> </b>
<b>=</b>
<b> </b>
<b>mysqli_connect</b>
<b>("</b>
<b>localhost</b>
<b>",</b>
<b> </b>
<b>"</b>
<b>root</b>
<b>",</b>
<b> </b>
<b>"");</b>
<b> </b>
<i><b>// Check connection</b></i>
<b> </b>
<b>if($link</b>
<b> </b>
<b>===</b>
<b> </b>
<b>false</b>
<b>){</b>
<b> </b>
<b>die("</b>
<b>ERROR:Could not connect. </b>
<b>".</b>
<b> </b>
<b>mysqli_connect_erro</b>
<b>r</b>
<b>());</b>
</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>
<b>Tạo cơ sở dữ liệu MySQL bằng PHP</b>
<b><?php</b>
<b> </b><i><b>// tạo database bằng câu lệnh sql</b></i>
<b> $sql = "CREATE DATABASE demo";</b>
<b> if(mysqli_query($link, $sql)){</b>
<b> echo "Database created successfully";</b>
<b> } else{</b>
<b> echo "ERROR: Could not able to execute $sql. " . mysqli_error(</b>
<b>$link);</b>
<b> }</b>
</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>
<b>Tạo bảng </b>
<sub>Sau khi tạo Database, tiếp tục </sub>
tạo các bảng trong cơ sở dữ
liệu:
• Click vào
<b>database</b> <i>tintuc</i> ở danh
sách bên trái, và chọn tab
<i><b>Structure</b></i>.
</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>
<b>Tạo bảng </b>
</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>
<b>Tạo bảng </b>
</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>
<b>Tạo bảng </b>
<b><sub>Chỉnh AUTO INCREMENT </sub></b>
<b>cho id: </b>vì mỗi khi thêm một
hàng dữ liệu thì mục id sẽ tự
động được tăng thêm 1.
</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>
<b>Tạo bảng </b>
• Ở màn hình điều chỉnh,
tìm và click chọn
checkbox ở vị trí A_I
<b>.</b>
</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>
<b>Tạo bảng </b>
<b><sub>Chỉnh KHĨA CHÍNH cho id: </sub></b>
<sub>Mỗi table chỉ có một khóa chính</sub>
<sub>Tại hàng id, cột </sub>
<i><sub>Action</sub></i>
<sub>, Click chọn </sub>
<i><sub>Primary</sub></i>
<sub>, khi đó sẽ có màn </sub>
</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>
<b>Tạo bảng </b>
<b><sub>Chèn dữ liệu vào bảng từ phpMyAdmin</sub></b>
<sub>Chọn table </sub>
<i><sub>cần chèn </sub></i>
<sub>ở danh sách bên trái, sau đó click chọn </sub>
</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>
<b>Chèn dữ liệu vào bảng</b>
<b><sub>Chèn dữ liệu vào bảng </sub></b>
<b><sub>bằng lệnh</sub></b>
<i><b>/</b></i>
<i><b>* Attempt MySQL server connection. Assuming you are runni</b></i>
<i><b>ng MySQL</b></i>
<i><b>server with default setting (user 'root' with no password</b></i>
<i><b>) */</b></i>
<b>$link</b>
<b> </b>
<b>=</b>
<b> </b>
<b>mysqli_connect</b>
<b>("</b>
<b>localhost</b>
<b>",</b>
<b> </b>
<b>"</b>
<b>root</b>
<b>",</b>
<b> </b>
<b>"",</b>
<b> </b>
<b>"</b>
<b>demo</b>
<b>");</b>
<b> </b>
<i><b>// Check connection</b></i>
<b>if($link</b>
<b> </b>
<b>===</b>
<b> </b>
<b>false</b>
<b>){</b>
<b> </b>
<b>die("</b>
<b>ERROR:Could not connect.</b>
<b>"</b>
<b> </b>
<b>.</b>
<b> </b>
<b>mysqli_connect_error</b>
</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>
<b>Chèn dữ liệu vào bảng</b>
<b><sub>Chèn dữ liệu vào bảng </sub></b>
<b><sub>bằng lệnh</sub></b>
<i><b>// Attempt insert query execution</b></i>
<b>$sql</b>
<b> </b>
<b>="INSERT</b>
<b> </b>
<b>INTO</b>
<b> persons (first_name, last_name, emai</b>
<b>l) </b>
<b>VALUES</b>
<b> (</b>
<b>'</b>
<b>Peter</b>
<b>'</b>
<b>, </b>
<b>'</b>
<b>Parker</b>
<b>'</b>
<b>, </b>
<b>'</b>
<b></b>
<b>'</b>
<b>)</b>
<b>";</b>
<b>if(</b>
<b>mysqli_query</b>
<b>($link,</b>
<b> </b>
<b>$sql)){</b>
<b> </b>
<b>echo</b>
<b> </b>
<b>"</b>
<b>Records inserted successfully.</b>
<b>";</b>
<b>}</b>
<b> </b>
<b>else{</b>
<b> </b>
<b>echo</b>
<b> </b>
<b>"</b>
<b>ERROR: Could not able to execute </b>
<b>$sql</b>
<b>. </b>
<b>"</b>
<b> </b>
<b>.</b>
<b> </b>
<b>my</b>
<b>sqli_error</b>
<b>($link);</b>
</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>
<b>Chèn dữ liệu vào bảng</b>
<b><sub>Chèn dữ liệu vào bảng </sub></b>
<b><sub>bằng lệnh</sub></b>
<i><b>// Close connection</b></i>
</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>
<b>Chèn dữ liệu vào bảng thông qua Form</b>
<sub>Bước 1: Tạo Form</sub>
<b><form action="insert.php" method="post"></b>
<b> <p></b>
<b> <label for="firstName">First Name:</label></b>
<b> <input type="text" name="first_name" id="firstName"</b>
<b>></b>
<b> </p></b>
<b> <p></b>
<b> <label for="lastName">Last Name:</label></b>
<b> <input type="text" name="last_name" id="lastName"></b>
<b> </p></b>
<b> <p></b>
<b> <label for="emailAddress">Email Address:</label></b>
<b> <input type="text" name="email" id="emailAddress"></b>
<b> </p></b>
</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>
<b>Chèn dữ liệu vào bảng thông qua Form</b>
<b><sub>Bước 2: Truy xuất và chèn dữ liệu từ form</sub></b>
<b><?php</b>
<i><b>/* (user 'root' with no password) */</b></i>
<b>$link = mysqli_connect("localhost", "root", "", "demo");</b>
<i><b>// Check connection</b></i>
<b>if($link === false){</b>
<b> die("ERROR: Could not connect. " . mysqli_connect_error());</b>
<b>}</b>
<b> // Escape user inputs for security</b>
<b>$first_name = mysqli_real_escape_string($link, $_REQUEST['first_na</b>
<b>me']);</b>
<b>$last_name = mysqli_real_escape_string($link, $_REQUEST['last_name</b>
<b>']);</b>
<b>$email = mysqli_real_escape_string($link, $_REQUEST['email']);</b>
</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>
<b>Chèn dữ liệu vào bảng thông qua Form</b>
<sub>Bước 2: Truy xuất và chèn dữ liệu từ form</sub>
<i><b>// Attempt insert query execution</b></i>
<b>$sql</b>
<b> </b>
<b>=</b>
<b> </b>
<b>"INSERT</b>
<b> </b>
<b>INTO</b>
<b> persons (first_name, last_name, email</b>
<b>) </b>
<b>VALUES</b>
<b> (</b>
<b>'$first_name'</b>
<b>, </b>
<b>'$last_name'</b>
<b>, </b>
<b>'$email'</b>
<b>)</b>
<b>";</b>
<b>if(</b>
<b>mysqli_query</b>
<b>($link,</b>
<b> </b>
<b>$sql)){</b>
<b> </b>
<b>echo</b>
<b> </b>
<b>"</b>
<b>Records added successfully.</b>
<b>";</b>
<b>}</b>
<b> </b>
<b>else{</b>
<b> </b>
<b>echo</b>
<b> </b>
<b>"</b>
<b>ERROR: Could not able to execute </b>
<b>$sql</b>
<b>. </b>
<b>"</b>
<b> </b>
<b>.</b>
<b> </b>
<b>mysq</b>
<b>li_error</b>
<b>($link);</b>
<b>}</b>
<b> </b>
<i><b>// Close connection</b></i>
</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>
<b>Lấy dữ liệu từ bảng</b>
</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>
<b>Lấy dữ liệu từ bảng</b>
<b><sub>Cú pháp: </sub></b>
<b><sub>Ví dụ:</sub></b>
<b>SELECT</b>
<b> </b>
<i><b>column1</b></i>
<b>, </b>
<i><b>column2</b></i>
<b>, </b>
<i><b>columnN</b></i>
<b> </b>
<b>FROM</b>
<b> </b>
<i><b>table_n</b></i>
<i><b>ame</b></i>
<b>;</b>
<b><?php</b>
<b> /* default setting (user 'root' with no password) */</b>
<b> $link = mysqli_connect("localhost", "root", "", "demo");</b>
<b> </b><i><b>// Check connection</b></i>
<b> if($link === false){</b>
<b> die("ERROR: Could not connect. " . mysqli_connect_erro</b>
<b>r());</b>
<b> }</b>
</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>
<b>Lấy dữ liệu từ bảng</b>
<b><sub>Ví dụ (tt):</sub></b>
<b>if<sub> </sub>($result<sub>if</sub><sub>(mysqli_num_rows($result)</sub> = mysqli_query($link,<sub> </sub><sub>></sub><sub> </sub><sub>0</sub> $sql)){<sub>){</sub></b>
<b> echo "<table>";</b>
<b> echo "<tr>";</b>
<b> echo "<th>id</th>";</b>
<b> echo "<th>first_name</th>";</b>
<b> echo "<th>last_name</th>";</b>
<b> echo "<th>email</th>";</b>
<b> echo "</tr>";</b>
<b> while($row = mysqli_fetch_array($result)){</b>
<b> echo "<tr>";</b>
<b> echo "<td>" . $row['id'] . "</td>";</b>
<b> echo "<td>" . $row['first_name'] . "</td></b>
<b>";</b>
<b> echo "<td>" . $row['last_name'] . "</td>"</b>
<b>;</b>
<b> echo "<td>" . $row['email'] . "</td>";</b>
<b> echo "</tr>";</b> <b>}</b>
</div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35>
<b>Lấy dữ liệu từ bảng</b>
<b><sub>Ví dụ (tt):</sub></b>
<b> </b> <b>else{</b>
<b> echo "No records matching your query were found.";</b>
<b> }</b>
<b> } else{</b>
<b> echo "ERROR: Could not able to execute $sql.". mysqli_error($</b>
<b>link);</b>
<b> }</b>
<i><b>// Close connection</b></i>
</div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36></div>
<span class='text_page_counter'>(37)</span><div class='page_container' data-page=37></div>
<!--links-->