Rabu, 20 November 2013

PHP Pengenalan MySQL

--
PHP Pengenalan MySQL
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 tableTable 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).
Lihatlah http://www.mysql.com/customers/ untuk gambaran syarikat menggunakan MySQL.
--

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();
  }
?>

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);
?>

--

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);
  }
?>

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);
  }
?>
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 keyPrimary 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
)";

--

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,...)
Bentuk kedua menyatakan kedua-dua nama-nama column dan nilai yang mahu dimasukkan:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
Untuk mendapatkan PHP untuk melaksanakan kenyataan di atas kita mesti menggunakan mysqli_query() functionFunction 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);
?>

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>
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);
?>

--

PHP MySQL Select

Arahan SELECT digunakan untuk memilih data dari database.

Syntax

SELECT column_name(s)
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);
?>
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

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);
?>
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
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>";
  }
?>
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

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);
?>
Output di atas adalah:
Glenn Quagmire 33
Peter Griffin 35

Order by menggunakan dua column

Data dalam row boleh disusun berdasarkan dua atau lebih columnColumn kedua hanya digunakan jika nilai-nilai dalam column pertama adalah sama:
SELECT column_name(s)
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

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);
?>
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
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);
?>
Selepas dipadam, table akan kelihatan seperti ini:
FirstName
LastName
Age
Glenn
Quagmire
33

--

Tiada ulasan:

Catat Ulasan