--
Dengan PHP, anda boleh berhubung dan berinteraksi dengan pangkalan data (database).
MySQL adalah sistem pangkalan data yang paling popular digunakan dengan PHP.
Apakah MySQL?
- MySQL adalah sistem database yang digunakan di web
- MySQL adalah sistem database yang dijalankan pada server
- MySQL adalah sesuai untuk aplikasi kecil dan besar
- MySQL adalah sangat cepat, boleh dipercayai, dan mudah untuk digunakan
- MySQL menyokong standard SQL
- MySQL dijalankan di beberapa platform
- MySQL adalah percuma untuk dimuat turun dan dipasang
- MySQL dibangunkan, diedarkan, dan disokong oleh Oracle Corporation
- MySQL dinamakan sempena anak perempuan pengasas bersama Monty Widenius ini: My
Data dalam MySQL disimpan di dalam table. Table adalah satu koleksi data yang berkaitan, dan ia terdiri daripada lajur (columns) dan baris (rows).
Database berguna apabila menyimpan maklumat mengikut kategori. Sebuah syarikat boleh mempunyai database dengan jadual berikut:
- Pekerja
- Produk
- Pelanggan
- Pesanan
PHP + MySQL
- PHP digabungkan dengan MySQL secara cross-platform (anda boleh menjalankan PHP di dalam Windows dan berhubung dengan MySQL dalam platform Unix a)
Query
Query adalah satu soalan atau permintaan.
Kita boleh query database untuk mendapatkan maklumat tertentu dan database akan memulangkan recordset.
Lihatlah query berikut (menggunakan standard SQL):
SELECT LastName FROM Employees
Query di atas memilih semua data di dalam ruangan "LastName" dari table "Employees".
Download Database MySQL
Jika anda tidak mempunyai server PHP dengan MySQL Database, anda boleh memuat MySQL secara percuma di sini:http://www.mysql.com
Fakta Mengenai MySQL Database
Satu perkara yang hebat tentang MySQL adalah bahawa ia boleh dikurangkan skala untuk menyokong aplikasi embedded database. Mungkin ia adalah kerana ini ramai orang berfikir bahawa MySQL hanya boleh mengendalikan sistem yang bersaiz kecil dan sederhana.
Yang benar adalah bahawa MySQL adalah de-facto standard sistem database untuk laman web berskala BESAR dari sudut jumlah data dan pengguna akhir (seperti Friendster, Yahoo, dan Google).
--
Sambung PHP ke Server MySQL
Gunakan mysqli_connect PHP () fungsi untuk membuka sambungan baru ke server MySQL.
Buka Sambungan ke Server MySQL
Sebelum kita boleh mengakses data dalam database, kita perlu membuka sambungan kepada server MySQL.
Dalam PHP, ini dilakukan dengan mysqli_connect().
Syntax
mysqli_connect(host,username,password,dbname);
Parameter
|
Description
|
host
|
Optional. Either a host name or an IP address
|
username
|
Optional. The MySQL user name
|
password
|
Optional. The password to log in with
|
dbname
|
Optional. The default database to be used when performing queries
|
Nota: Terdapat parameter yang lain lagi, tetapi yang disenaraikan di atas adalah yang paling penting.
Dalam contoh yang berikut kita menyimpan hubungan dalam variable ($con) untuk masa digunakan dalam skrip:
<?php
// Create connection
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
// Create connection
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
Tutup Sambungan
Sambungan ke database akan ditutup secara automatik apabila skrip berakhir. Untuk menutup sambungan sebelum ini, gunakan arahan mysqli_close():
<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_close($con);
?>
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_close($con);
?>
--
Buat Database dan Table dengan PHP
Database boleh menyimpan satu atau lebih table.
Membuat Database
Arahan CREATE DATABASE digunakan untuk mencipta table database dalam MySQL.
Contoh berikut mewujudkan satu database yang dinamakan "my_db":
<?php
$con=mysqli_connect("example.com","peter","abc123");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Create database
$sql="CREATE DATABASE my_db";
if (mysqli_query($con,$sql))
{
echo "Database my_db created successfully";
}
else
{
echo "Error creating database: " . mysqli_error($con);
}
?>
$con=mysqli_connect("example.com","peter","abc123");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Create database
$sql="CREATE DATABASE my_db";
if (mysqli_query($con,$sql))
{
echo "Database my_db created successfully";
}
else
{
echo "Error creating database: " . mysqli_error($con);
}
?>
Membuat Table
Arahan CREATE digunakan untuk membuat jadual dalam MySQL.
Contoh berikut mewujudkan table yang dinamakan "Persons", dengan tiga columns: "FirstName", "LastName" dan "Umur":
<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Create table
$sql="CREATE TABLE Persons(FirstName CHAR(30),LastName CHAR(30),Age INT)";
// Execute query
if (mysqli_query($con,$sql))
{
echo "Table persons created successfully";
}
else
{
echo "Error creating table: " . mysqli_error($con);
}
?>
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Create table
$sql="CREATE TABLE Persons(FirstName CHAR(30),LastName CHAR(30),Age INT)";
// Execute query
if (mysqli_query($con,$sql))
{
echo "Table persons created successfully";
}
else
{
echo "Error creating table: " . mysqli_error($con);
}
?>
Nota: Apabila anda mewujudkan satu column jenis CHAR, anda mesti nyatakan panjang maksimum column, contohnya CHAR (50).
Jenis-jenis data menentukan saiz ruang penyimpanan data.
Primary Key dan Auto-Increment
Setiap table dalam database harus mempunyai primary key.
Primary Key digunakan untuk mengenal pasti setiap row dalam table. Setiap nilai primary key mestilah unik dalam table. Tambahan pula, primary key bidang kunci utama tidak mengandungi nilainull kerana enjin database memerlukan satu nilai untuk mengesan rekod.
Contoh berikut menetapkan PID sebagai primary key. Primary Key selalunya adalah nombor ID, dan sering digunakan bersama sifat AUTO_INCREMENT. AUTO_INCREMENT secara automatik akan meningkat satu nilai setiap kali satu rekod baru ditambah. Untuk memastikan bahawa primary key tidak boleh mengandungi nilai Null, kita tambahkan sifat NOT NULL kepada column:
$sql = "CREATE TABLE Persons
(
PID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(PID),
FirstName CHAR(15),
LastName CHAR(15),
Age INT
)";
(
PID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(PID),
FirstName CHAR(15),
LastName CHAR(15),
Age INT
)";
--
PHP MySQL INSERT INTO
Arahan INSERT INTO digunakan untuk memasukkan rekod baru dalam table.
Memasukkan Data Ke Table Database
The INSERT INTO kenyataan digunakan untuk menambah rekod baru kepada jadual database.
Syntax
Arahan INSERT INTO boleh ditulis dalam dua bentuk.
Bentuk pertama tidak menyatakan nama-nama column di mana data akan dimasukkan, hanya nilai sahaja yang diberikan:
INSERT INTO table_name
VALUES (value1, value2, value3,...)
VALUES (value1, value2, value3,...)
Bentuk kedua menyatakan kedua-dua nama-nama column dan nilai yang mahu dimasukkan:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
VALUES (value1, value2, value3,...)
Untuk mendapatkan PHP untuk melaksanakan kenyataan di atas kita mesti menggunakan mysqli_query() function. Function ini digunakan untuk menghantar arahan kepada server MySQL.
Contoh
Contoh berikut menambah dua rekod baru kepada table "Persons":
<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Peter', 'Griffin',35)");
mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Glenn', 'Quagmire',33)");
mysqli_close($con);
?>
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Peter', 'Griffin',35)");
mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Glenn', 'Quagmire',33)");
mysqli_close($con);
?>
Memasukkan Data Dari Form Ke Database
Sekarang kita akan mewujudkan satu HTML Form yang boleh digunakan untuk menambah rekod baru kepada table "Persons".
Berikut adalah HTML Form:
<html>
<body>
<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>
</body>
</html>
<body>
<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>
</body>
</html>
Apabila pengguna mengklik submit button, data akan dihantar ke file "insert.php".
File "insert.php" akan berhubung dengan database, dan mendapatkan semula nilai dari variable PHP $_POST.
Kemudian, mysqli_query() function melaksanakan arahan INSERT INTO, dan rekod baru akan ditambah kepada table "Orang".
Berikut adalah kod "insert.php":
<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
?>
--
PHP MySQL Select
Arahan SELECT digunakan untuk memilih data dari database.
Syntax
SELECT column_name(s)
FROM table_name
FROM table_name
Untuk mendapatkan PHP untuk melaksanakan kenyataan di atas kita mesti menggunakan mysqli_query() function.
Fungsi ini digunakan untuk menghantar pertanyaan atau arahan kepada sambungan MySQL.
Contoh
Contoh berikut memilih semua data yang disimpan dalam table "Persons" (Symbol * bermaksud semua data dalam jadual):
<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM Persons");
while($row = mysqli_fetch_array($result))
{
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br>";
}
mysqli_close($con);
?>
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM Persons");
while($row = mysqli_fetch_array($result))
{
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br>";
}
mysqli_close($con);
?>
Dalam contoh di atas, data yang dikembalikan oleh mysqli_query() function akan disimpan oleh $result.
Kita menggunakan mysqli_fetch_array() untuk memulangkan hasil query sebagai array. Seterusnya, setiap panggilan mysqli_fetch_array () akan mengembalikan hasil query bagi row berikutnya. While Loop digunakan untuk mengulangi proses query bagi semua rekod bagi sesebuah recordset. Untuk mencetak nilai bagi setiap row, kita menggunakan PHP $row ($row ['FirstName'] dan $row ['LastName']).
Output di atas adalah:
Peter Griffin
Glenn Quagmire
Glenn Quagmire
Memaparkan Hasil Query dalam HTML Table
Contoh berikut memilih data yang sama seperti di atas, tetapi akan memaparkan data dalam HTML Table:
<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM Persons");
echo " <table border='1'>
< tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM Persons");
echo " <table border='1'>
< tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
Output di atas adalah:
Nama anda
|
Nama bapa
|
Glenn
|
Paya
|
Peter
|
Griffin
|
--
PHP MySQL Where Clause
Arahan Where Clause digunakan untuk menapis rekod.
Where Clause
Arahan Where Clause digunakan untuk hanya mengembalikan rekod yang memenuhi kriteria yang ditetapkan sahaja.
Syntax
SELECT column_name(s)
FROM table_name
WHERE column_name operator value
FROM table_name
WHERE column_name operator value
Untuk mendapatkan PHP untuk melaksanakan kenyataan di atas kita mesti menggunakan mysqli_query() function. Fungsi ini digunakan untuk menghantar pertanyaan atau arahan kepada sambungan MySQL.
Contoh
Contoh berikut memilih semua row daripada table "Persons" di mana "FirstName = 'Peter'":
<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM Persons
WHERE FirstName='Peter'");
while($row = mysqli_fetch_array($result))
{
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br>";
}
?>
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM Persons
WHERE FirstName='Peter'");
while($row = mysqli_fetch_array($result))
{
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br>";
}
?>
Output di atas adalah:
Peter Griffin
--
PHP MySQL Order By Keyword
Arahan ORDER BY digunakan untuk menyusun data dalam recordset.
Order By Keyword
ORDER BY keyword digunakan untuk menyusun data dalam recordset.
Secara lalai, susunan row adalah secara menaik (ascending).
Jika anda ingin menyusun rekod dalam susunan menurun, anda boleh menggunakan kata kunci DESC.
Syntax
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC
FROM table_name
ORDER BY column_name(s) ASC|DESC
Contoh
Contoh berikut memilih semua data yang disimpan dalam "Persons" jadual, dan menyusunya berdasarkan column "Umur":
<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM Persons ORDER BY age");
while($row = mysqli_fetch_array($result))
{
echo $row['FirstName'];
echo " " . $row['LastName'];
echo " " . $row['Age'];
echo "<br>";
}
mysqli_close($con);
?>
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM Persons ORDER BY age");
while($row = mysqli_fetch_array($result))
{
echo $row['FirstName'];
echo " " . $row['LastName'];
echo " " . $row['Age'];
echo "<br>";
}
mysqli_close($con);
?>
Output di atas adalah:
Glenn Quagmire 33
Peter Griffin 35
Peter Griffin 35
Order by menggunakan dua column
Data dalam row boleh disusun berdasarkan dua atau lebih column. Column kedua hanya digunakan jika nilai-nilai dalam column pertama adalah sama:
SELECT column_name(s)
FROM table_name
ORDER BY column1, column2
FROM table_name
ORDER BY column1, column2
--
PHP MySQL Update
Arahan UPDATE digunakan untuk mengubah data dalam jadual.
Mengemaskini Data Dalam Database
Kenyataan UPDATE digunakan untuk mengemas kini rekod yang sedia ada dalam table.
Syntax
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
SET column1=value, column2=value2,...
WHERE some_column=some_value
Nota: Perhatikan perkataan Where. Arahan Where menyatakan rekod yang perlu dikemaskini. Jika anda meninggalkan Where, semua rekod akan dikemaskini!
Untuk mendapatkan PHP untuk melaksanakan kenyataan di atas kita mesti menggunakan mysqli_query() function. Fungsi ini digunakan untuk menghantar pertanyaan atau arahan kepada sambungan MySQL.
Contoh
Berikut adalah table contoh bersama data sedia ada.
FirstName
|
LastName
|
Age
|
Peter
|
Griffin
|
35
|
Glenn
|
Quagmire
|
33
|
Contoh berikut kemas kini beberapa data dalam table "Persons":
<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"UPDATE Persons SET Age=36
WHERE FirstName='Peter' AND LastName='Griffin'");
mysqli_close($con);
?>
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"UPDATE Persons SET Age=36
WHERE FirstName='Peter' AND LastName='Griffin'");
mysqli_close($con);
?>
Selepas arahan UPDATE diberikan, table "Persons" akan kelihatan seperti ini:
FirstName
|
LastName
|
Age
|
Peter
|
Griffin
|
36
|
Glenn
|
Quagmire
|
33
|
--
PHP MySQL Delete
Arahan DELETE digunakan untuk memadam rekod dalam jadual.
Padam Data Dalam Database
Arahan DELETE FROM digunakan untuk memadam rekod dalam database table.
Syntax
DELETE FROM table_name
WHERE some_column = some_value
WHERE some_column = some_value
Nota: Perhatikan perkataan Where. Arahan Where menyatakan rekod yang perlu dikemaskini. Jika anda meninggalkan Where, semua rekod akan dikemaskini!Untuk mengetahui lebih lanjut mengenai SQL, sila lawati tutorial SQL .
Contoh
Lihatlah table "Persons" berikut:
FirstName
|
LastName
|
Age
|
Peter
|
Griffin
|
35
|
Glenn
|
Quagmire
|
33
|
Arahan berikut akan memadam semua rekod dalam "Persons" berdasarkan nilai row di mana LastName = 'Griffin':
<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"DELETE FROM Persons WHERE LastName='Griffin'");
mysqli_close($con);
?>
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"DELETE FROM Persons WHERE LastName='Griffin'");
mysqli_close($con);
?>
Selepas dipadam, table akan kelihatan seperti ini:
FirstName
|
LastName
|
Age
|
Glenn
|
Quagmire
|
33
|
--
Tiada ulasan:
Catat Ulasan