Belajar PHP Mysqli

Panduan Lengkap Belajar PHP Mysqli

Pendahuluan Belajar PHP Mysqli

kali ini kami akan membagikan panduan Lengkap Belajar PHP Mysqli

MySQLi adalah ekstensi untuk MySQL API yang tersedia dalam PHP dan diperkenalkan mulai dari PHP 5.0 dan seterusnya. Ini juga dikenal sebagai ekstensi yang ditingkatkan MySQL. Motivasi di balik MySQLi adalah memanfaatkan fitur-fitur baru yang tersedia di MySQL 4.1.3 dan seterusnya. Ini memberikan banyak manfaat dibandingkan ekstensi MySQL.

  • MySQL menyediakan antarmuka berorientasi objek.¬†Ini menyediakan pendekatan berorientasi objek dan prosedural untuk menangani operasi database.

Pemrograman OOP dengan PHP

<?php

$mysqli = mysqli_connect(“localhost”, “user”, “password”, “database-name”);

$result = mysqli_query($mysqli, “SELECT ‘Welcome to MySQLi’ AS _msg FROM DUAL”);

$row = mysqli_fetch_assoc($result);

echo $row[‘_msg’];

?>

Pemrograman Prosedural dengan PHP

<?php

$mysqli = new mysqli(“localhost”, “user”, “password”, “database-name”);

$result = $mysqli‚Üíquery(“SELECT ‘Welcome to MySQLi’ AS _msg FROM DUAL”);

$row = $result‚Üífetch_assoc();

echo $row[‘_msg’];

?>

  • MySQLi mendukung pernyataan yang disiapkan.
  • MySQLi mendukung banyak pernyataan.
  • MySQLi mendukung transaksi.
  • MySQLi menyediakan kemampuan debugging yang ditingkatkan.

MySQLi – Sintaks PHP

MySQL bekerja dengan sangat baik dalam kombinasi berbagai bahasa pemrograman seperti PERL, C, C ++, JAVA dan PHP. Dari bahasa-bahasa ini, PHP adalah yang paling populer karena kemampuan pengembangan aplikasi webnya.

Tutorial ini sangat berfokus pada penggunaan MySQL di lingkungan PHP. Jika Anda tertarik dengan MySQL dengan PERL, Anda dapat mempertimbangkan untuk membaca Tutorial PERL .

PHP menyediakan berbagai fungsi untuk mengakses database MySQL dan untuk memanipulasi catatan data di dalam database MySQL. Anda perlu memanggil fungsi PHP dengan cara yang sama seperti Anda memanggil fungsi PHP lainnya.

Fungsi PHP untuk digunakan dengan MySQL memiliki format umum berikut –

mysqli function(value,value,…);

Bagian kedua dari nama fungsi dikhususkan untuk fungsi tersebut, biasanya sebuah kata yang menjelaskan fungsi dari fungsi tersebut.¬†Berikut ini adalah dua fungsi, yang akan kita gunakan dalam tutorial kita –

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

mysqli‚Üíquery(,”SQL statement”);

Contoh berikut menunjukkan sintaks umum PHP untuk memanggil fungsi MySQL apa pun.

<html>

<head>

<title>PHP with MySQL</title>

</head>

<body>

<?php

$retval = mysqli – > <i>function</i>(value, [value,…]);

if( !$retval ) {

die ( “Error: a related error message” );

}

// Otherwise MySQL or PHP Statements

?>

</body>

</html>

Mulai dari bab berikutnya, kita akan melihat semua fungsionalitas MySQL yang penting bersama dengan PHP.

MySQLi – Koneksi

Koneksi MySQL Menggunakan MySQL Binary

Anda dapat membuat database MySQL menggunakan biner mysql pada prompt perintah.

Contoh

Berikut adalah contoh sederhana untuk terhubung ke server MySQL dari command prompt –

[root@host]# mysql -u root -p

Enter password:******

Ini akan memberi Anda prompt perintah mysqli di mana Anda akan dapat menjalankan perintah SQL apa pun.¬†Berikut adalah hasil dari perintah di atas –

Blok kode berikut menunjukkan hasil kode di atas –

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2854760 to server version: 5.0.9

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

Dalam contoh di atas, kami telah menggunakan root sebagai pengguna tetapi Anda juga dapat menggunakan pengguna lain. Setiap pengguna akan dapat melakukan semua operasi SQL, yang diizinkan untuk pengguna tersebut.

Anda dapat memutuskan koneksi dari database MySQL kapan saja menggunakan perintah keluar pada prompt mysql>.

mysql> exit

Bye

Koneksi MySQL Menggunakan Script PHP

PHP menyediakan fungsi mysqli contruct atau mysqli_connect () untuk membuka koneksi database. Fungsi ini mengambil enam parameter dan mengembalikan pengenal tautan MySQL saat berhasil atau SALAH saat gagal.

Sintaksis

$mysqli = new mysqli($host, $username, $passwd, $dbName, $port, $socket);

Sr.No. Parameter & Deskripsi
1 $ host

Opsional РNama host yang menjalankan server database. Jika tidak ditentukan, maka nilai defaultnya adalah localhost: 3306 .

2 $ username

Opsional РNama pengguna mengakses database. Jika tidak ditentukan, maka defaultnya adalah nama pengguna yang memiliki proses server.

3 $ passwd

Opsional РKata sandi pengguna yang mengakses database. Jika tidak ditentukan, maka defaultnya adalah kata sandi kosong.

4 $ dbName

Opsional – nama database tempat kueri akan dilakukan.

5 $ port

Opsional – nomor port untuk mencoba terhubung ke server MySQL ..

6 $ socket

Opsional – soket atau pipa bernama yang harus digunakan.

Anda dapat memutuskan koneksi dari database MySQL kapan saja menggunakan fungsi PHP lain close () .

Sintaksis

$mysqli‚Üíclose();

Contoh

Coba contoh berikut untuk terhubung ke server MySQL –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Connecting MySQL Server</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass);

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya.

Connected successfully.

MySQLi – Buat Database

Buat Database Menggunakan mysqladmin

Anda memerlukan hak khusus untuk membuat atau menghapus database MySQL. Jadi dengan asumsi Anda memiliki akses ke pengguna root, Anda dapat membuat database apa pun menggunakan biner mysql mysqladmin .

Contoh

Berikut adalah contoh sederhana untuk membuat database yang disebut¬†TUTORIALS¬†–

[root@host]# mysqladmin -u root -p create TUTORIALS

Enter password:******

Ini akan membuat database MySQL yang disebut TUTORIALS.

Buat Database menggunakan PHP Script

PHP menggunakan fungsi mysqli query () atau mysql_query () untuk membuat atau menghapus database MySQL. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

$mysqli‚Üíquery($sql,$resultmode)

Sr.No. Parameter & Deskripsi
1 $ sql

Diperlukan – Kueri SQL untuk membuat database MySQL.

2 $ resultmode

Opsional РKonstanta MYSQLI_USE_RESULT atau MYSQLI_STORE_RESULT bergantung pada perilaku yang diinginkan. Secara default, MYSQLI_STORE_RESULT digunakan.

Contoh

Coba contoh berikut untuk membuat database –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head><title>Creating MySQL Database</title></head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass);

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

if ($mysqli‚Üíquery(“CREATE DATABASE TUTORIALS”)) {

printf(“Database TUTORIALS created successfully.<br />”);

}

if ($mysqli‚Üíerrno) {

printf(“Could not create database: %s<br />”, $mysqli‚Üíerror);

}

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya.

Connected successfully.

Database TUTORIALS created successfully.

MySQLi – Jatuhkan Database

Jatuhkan Database menggunakan mysqladmin

Anda memerlukan hak khusus untuk membuat atau menghapus database MySQL. Jadi, dengan asumsi Anda memiliki akses ke pengguna root, Anda dapat membuat database apa pun menggunakan biner mysql mysqladmin .

Berhati-hatilah saat menghapus database karena Anda akan kehilangan semua data yang tersedia di database Anda.

Berikut adalah contoh untuk menghapus database (TUTORIALS) yang dibuat di bab sebelumnya –

[root@host]# mysqladmin -u root -p drop TUTORIALS

Enter password:******

Ini akan memberi Anda peringatan dan akan mengkonfirmasi apakah Anda benar-benar ingin menghapus database ini atau tidak.

Dropping the database is potentially a very bad thing to do.

Any data stored in the database will be destroyed.

Do you really want to drop the ‘TUTORIALS’ database [y/N] y

Database “TUTORIALS” dropped

Jatuhkan Database menggunakan PHP Script

PHP menggunakan fungsi mysqli query () atau mysql_query () untuk menjatuhkan database MySQL. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

$mysqli‚Üíquery($sql,$resultmode)

Sr.No. Parameter & Deskripsi
1 $ sql

Diperlukan – Kueri SQL untuk menghapus database MySQL.

2 $ resultmode

Opsional РKonstanta MYSQLI_USE_RESULT atau MYSQLI_STORE_RESULT bergantung pada perilaku yang diinginkan. Secara default, MYSQLI_STORE_RESULT digunakan.

Contoh

Coba contoh berikut untuk menjatuhkan database –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head><title>Dropping MySQL Database</title></head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass);

 

if($mysqli->connect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli->connect_error);

exit();

}

printf(‘Connected successfully.<br />’);

if ($mysqli->query(“Drop DATABASE TUTORIALS”)) {

printf(“Database TUTORIALS dropped successfully.<br />”);

}

if ($mysqli->errno) {

printf(“Could not drop database: %s<br />”, $mysqli->error);

}

$mysqli->close();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya.

Connected successfully.

Database TUTORIALS dropped successfully.

MySQLi – Pilih Database

Setelah Anda terhubung dengan server MySQL, Anda harus memilih database yang akan digunakan. Ini karena mungkin ada lebih dari satu database yang tersedia dengan Server MySQL.

Memilih Database MySQL dari Command Prompt

Sangat mudah untuk memilih database dari prompt mysql>. Anda dapat menggunakan perintah SQL digunakan untuk memilih database.

Contoh

Berikut adalah contoh untuk memilih database yang disebut¬†TUTORIALS¬†–

[root@host]# mysql -u root -p

Enter password:******

mysql> use TUTORIALS;

Database changed

mysql>

Sekarang, Anda telah memilih database TUTORIALS dan semua operasi selanjutnya akan dilakukan pada database TUTORIALS.

CATATAN РSemua nama database, nama tabel, nama kolom tabel peka huruf besar / kecil. Jadi, Anda harus menggunakan nama yang tepat saat memberikan perintah SQL apa pun.

Memilih Database MySQL Menggunakan Script PHP

PHP menggunakan fungsi mysqli_select_db untuk memilih database di mana query akan dilakukan. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

mysqli_select_db ( mysqli $link , string $dbname ) : bool

Sr.No. Parameter & Deskripsi
1 $ link

Diperlukan – Pengidentifikasi tautan yang dikembalikan oleh mysqli_connect () atau mysqli_init ().

2 $ dbname

Diperlukan – Nama database yang akan dihubungkan.

Contoh

Coba contoh berikut untuk memilih database –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Selecting MySQL Database</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);

if(! $conn ) {

die(‘Could not connect: ‘ . mysqli_error($conn));

}

echo ‘Connected successfully<br />’;

 

$retval = mysqli_select_db( $conn, ‘TUTORIALS’ );

if(! $retval ) {

die(‘Could not select database: ‘ . mysqli_error($conn));

}

echo “Database TUTORIALS selected successfully\n”;

mysqli_close($conn);

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya.

Database TUTORIALS selected successfully

MySQLi – Buat Tabel

Untuk memulainya, perintah pembuatan tabel memerlukan detail berikut –

  • Nama tabel
  • Nama bidang
  • Definisi untuk setiap bidang

Sintaksis

Berikut adalah sintaks SQL umum untuk membuat tabel MySQL –

CREATE TABLE table_name (column_name column_type);

Sekarang, kita akan membuat tabel berikut di database TUTORIALS .

create table tutorials_tbl(

tutorial_id INT NOT NULL AUTO_INCREMENT,

tutorial_title VARCHAR(100) NOT NULL,

tutorial_author VARCHAR(40) NOT NULL,

submission_date DATE,

PRIMARY KEY ( tutorial_id )

);

Di sini, beberapa item perlu penjelasan –

  • Field Attribute¬†NOT NULL¬†digunakan karena kita tidak ingin field ini menjadi NULL.¬†Jadi, jika pengguna mencoba membuat record dengan nilai NULL, maka MySQL akan memunculkan error.
  • Atribut Bidang¬†AUTO_INCREMENT¬†memberi tahu MySQL untuk melanjutkan dan menambahkan nomor yang tersedia berikutnya ke bidang id.
  • Kata kunci¬†PRIMARY KEY¬†digunakan untuk mendefinisikan kolom sebagai kunci utama.¬†Anda dapat menggunakan beberapa kolom yang dipisahkan oleh koma untuk menentukan kunci utama.

Membuat Tabel dari Command Prompt

Sangat mudah untuk membuat tabel MySQL dari prompt mysql>. Anda akan menggunakan perintah SQL CREATE TABLE untuk membuat tabel.

Contoh

Berikut adalah contoh, yang akan membuat¬†tutorials_tbl¬†–

root@host# mysql -u root -p

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> CREATE TABLE tutorials_tbl(

‚Üí tutorial_id INT NOT NULL AUTO_INCREMENT,

‚Üí tutorial_title VARCHAR(100) NOT NULL,

‚Üí tutorial_author VARCHAR(40) NOT NULL,

‚Üí submission_date DATE,

‚Üí PRIMARY KEY ( tutorial_id )

‚Üí );

Query OK, 0 rows affected (0.16 sec)

mysql>

CATATAN РMySQL tidak menghentikan perintah sampai Anda memberikan titik koma (;) di akhir perintah SQL.

Membuat Tabel Menggunakan Script PHP

PHP menggunakan fungsi mysqli query () atau mysql_query () untuk membuat tabel MySQL. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

$mysqli‚Üíquery($sql,$resultmode)

Sr.No. Parameter & Deskripsi
1 $ sql

Diperlukan – Kueri SQL untuk membuat tabel MySQL.

2 $ resultmode

Opsional РKonstanta MYSQLI_USE_RESULT atau MYSQLI_STORE_RESULT bergantung pada perilaku yang diinginkan. Secara default, MYSQLI_STORE_RESULT digunakan.

Contoh

Coba contoh berikut untuk membuat tabel –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Creating MySQL Table</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$dbname = ‘TUTORIALS’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

 

$sql = “CREATE TABLE tutorials_tbl( “.

“tutorial_id INT NOT NULL AUTO_INCREMENT, “.

“tutorial_title VARCHAR(100) NOT NULL, “.

“tutorial_author VARCHAR(40) NOT NULL, “.

“submission_date DATE, “.

“PRIMARY KEY ( tutorial_id )); “;

if ($mysqli‚Üíquery($sql)) {

printf(“Table tutorials_tbl created successfully.<br />”);

}

if ($mysqli‚Üíerrno) {

printf(“Could not create table: %s<br />”, $mysqli‚Üíerror);

}

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya.

Connected successfully.

Table tutorials_tbl created successfully.

MySQLi – Meja Taruh

Sangat mudah untuk menjatuhkan tabel MySQL yang sudah ada, tetapi Anda harus sangat berhati-hati saat menghapus tabel yang ada karena data yang hilang tidak akan dipulihkan setelah tabel dihapus.

Sintaksis

Berikut adalah sintaks SQL umum untuk menjatuhkan tabel MySQL –

DROP TABLE table_name ;

Menjatuhkan Tabel dari Command Prompt

Untuk menjatuhkan tabel dari command prompt, kita perlu menjalankan perintah DROP TABLE SQL pada prompt mysql>.

Contoh

Program berikut adalah contoh yang menghapus¬†tutorials_tbl¬†–

root@host# mysql -u root -p

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> DROP TABLE tutorials_tbl

Query OK, 0 rows affected (0.8 sec)

mysql>

Menjatuhkan Tabel Menggunakan Script PHP

PHP menggunakan fungsi mysqli query () atau mysql_query () untuk menjatuhkan tabel MySQL. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

$mysqli‚Üíquery($sql,$resultmode)

Sr.No. Parameter & Deskripsi
1 $ sql

Diperlukan – kueri SQL untuk menjatuhkan tabel.

2 $ resultmode

Opsional РKonstanta MYSQLI_USE_RESULT atau MYSQLI_STORE_RESULT bergantung pada perilaku yang diinginkan. Secara default, MYSQLI_STORE_RESULT digunakan.

Contoh

Coba contoh berikut untuk menjatuhkan tabel –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Dropping MySQL Table</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$dbname = ‘TUTORIALS’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

 

if ($mysqli‚Üíquery(“Drop Table tutorials_tbl”)) {

printf(“Table tutorials_tbl dropped successfully.<br />”);

}

if ($mysqli‚Üíerrno) {

printf(“Could not drop table: %s<br />”, $mysqli‚Üíerror);

}

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya.

Connected successfully.

Table tutorials_tbl dropped successfully.

MySQLi – Masukkan Kueri

Untuk memasukkan data ke dalam tabel MySQL, Anda perlu menggunakan perintah SQL INSERT INTO . Anda dapat memasukkan data ke dalam tabel MySQL dengan menggunakan prompt mysql> atau dengan menggunakan skrip seperti PHP.

Sintaksis

Berikut adalah sintaks SQL generik dari perintah INSERT INTO untuk memasukkan data ke dalam tabel MySQL –

INSERT INTO table_name ( field1, field2,…fieldN )

VALUES

( value1, value2,…valueN );

Untuk memasukkan tipe data string, diperlukan untuk menyimpan semua nilai menjadi tanda kutip ganda atau tunggal.¬†Misalnya¬†“nilai”¬†.

Memasukkan Data dari Command Prompt

Untuk memasukkan data dari command prompt, kita akan menggunakan perintah SQL INSERT INTO untuk memasukkan data ke dalam tabel MySQL tutorials_tbl.

Contoh

Contoh berikut akan membuat 3 record menjadi¬†tabel¬†tutorials_tbl¬†–

root@host# mysql -u root -p password;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> INSERT INTO tutorials_tbl

‚Üí(tutorial_title, tutorial_author, submission_date)

‚ÜíVALUES

‚Üí(“Learn PHP”, “John Poul”, NOW());

Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO tutorials_tbl

‚Üí(tutorial_title, tutorial_author, submission_date)

‚ÜíVALUES

‚Üí(“Learn MySQL”, “Abdul S”, NOW());

Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO tutorials_tbl

‚Üí(tutorial_title, tutorial_author, submission_date)

‚ÜíVALUES

‚Üí(“JAVA Tutorial”, “Sanjay”, ‘2007-05-06’);

Query OK, 1 row affected (0.01 sec)

mysql>

CATATAN РHarap dicatat bahwa semua tanda panah (→) bukan merupakan bagian dari perintah SQL. Mereka menunjukkan baris baru dan dibuat secara otomatis oleh prompt MySQL sambil menekan tombol enter tanpa memberikan titik koma di akhir setiap baris perintah.

Pada contoh di atas, kami belum menyediakan tutorial_id karena pada saat pembuatan tabel, kami telah memberikan opsi AUTO_INCREMENT untuk bidang ini. Jadi MySQL akan memasukkan ID ini secara otomatis. Di sini, SEKARANG () adalah fungsi MySQL, yang mengembalikan tanggal dan waktu saat ini.

Memasukkan Data Menggunakan Script PHP

PHP menggunakan fungsi mysqli query () atau mysql_query () untuk memasukkan record ke dalam tabel MySQL. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

$mysqli‚Üíquery($sql,$resultmode)

Sr.No. Parameter & Deskripsi
1 $ sql

Diperlukan – kueri SQL untuk memasukkan rekaman ke dalam tabel.

2 $ resultmode

Opsional РKonstanta MYSQLI_USE_RESULT atau MYSQLI_STORE_RESULT bergantung pada perilaku yang diinginkan. Secara default, MYSQLI_STORE_RESULT digunakan.

Contoh

Contoh ini akan mengambil tiga parameter dari pengguna dan akan memasukkannya ke dalam tabel MySQL – –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Add New Record in MySQL Database</title>

</head>

<body>

<?php

if(isset($_POST[‘add’])) {

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$dbname = ‘TUTORIALS’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

if(! get_magic_quotes_gpc() ) {

$tutorial_title = addslashes ($_POST[‘tutorial_title’]);

$tutorial_author = addslashes ($_POST[‘tutorial_author’]);

} else {

$tutorial_title = $_POST[‘tutorial_title’];

$tutorial_author = $_POST[‘tutorial_author’];

}

$submission_date = $_POST[‘submission_date’];

$sql = “INSERT INTO tutorials_tbl “.

“(tutorial_title,tutorial_author, submission_date) “.”VALUES “.

“(‘$tutorial_title’,’$tutorial_author’,’$submission_date’)”;

 

if ($mysqli‚Üíquery($sql)) {

printf(“Record inserted successfully.<br />”);

}

if ($mysqli‚Üíerrno) {

printf(“Could not insert record into table: %s<br />”, $mysqli‚Üíerror);

}

$mysqli‚Üíclose();

} else {

?>

<form method = “post” action = “<?php $_PHP_SELF ?>”>

<table width = “600” border = “0” cellspacing = “1” cellpadding = “2”>

<tr>

<td width = “250”>Tutorial Title</td>

<td><input name = “tutorial_title” type = “text” id = “tutorial_title”></td>

</tr>

<tr>

<td width = “250”>Tutorial Author</td>

<td><input name = “tutorial_author” type = “text” id = “tutorial_author”></td>

</tr>

<tr>

<td width = “250”>Submission Date [ yyyy-mm-dd ]</td>

<td><input name = “submission_date” type = “text” id = “submission_date”></td>

</tr>

<tr>

<td width = “250”> </td>

<td></td>

</tr>

<tr>

<td width = “250”> </td>

<td><input name = “add” type = “submit” id = “add” value = “Add Tutorial”></td>

</tr>

</table>

</form>

<?php

}

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache, masukkan detailnya dan verifikasi output saat mengirimkan formulir.

Record inserted successfully.

Saat melakukan penyisipan data, yang terbaik adalah menggunakan fungsi get_magic_quotes_gpc () untuk memeriksa apakah konfigurasi saat ini untuk kutipan ajaib disetel atau tidak. Jika fungsi ini mengembalikan nilai false, gunakan fungsi addlashes () untuk menambahkan garis miring sebelum tanda kutip.

Anda dapat melakukan banyak validasi untuk memeriksa apakah data yang dimasukkan benar atau tidak dan dapat mengambil tindakan yang sesuai.

MySQLi – Pilih Kueri

Perintah SQL SELECT digunakan untuk mengambil data dari database MySQL. Anda dapat menggunakan perintah ini di mysql> prompt serta di skrip seperti PHP.

Sintaksis

Berikut adalah sintaks SQL generik dari perintah SELECT untuk mengambil data dari tabel MySQL –

SELECT field1, field2,…fieldN

FROM table_name1, table_name2…

[WHERE Clause]

[OFFSET M ][LIMIT N]

  • Anda dapat menggunakan satu atau lebih tabel yang dipisahkan dengan koma untuk memasukkan berbagai kondisi menggunakan klausa WHERE, tetapi klausa WHERE adalah bagian opsional dari perintah SELECT.
  • Anda dapat mengambil satu atau lebih bidang dalam satu perintah PILIH.
  • Anda dapat menentukan bintang (*) di tempat bidang.¬†Dalam kasus ini, PILIH akan mengembalikan semua bidang.
  • Anda dapat menentukan kondisi apapun menggunakan klausa WHERE.
  • Anda dapat menentukan offset menggunakan¬†OFFSET¬†dari mana SELECT akan mulai mengembalikan record.¬†Secara default, offset dimulai dari nol.
  • Anda dapat membatasi jumlah pengembalian menggunakan¬†atribut¬†LIMIT¬†.

Mengambil Data dari Command Prompt

Ini akan menggunakan perintah SQL SELECT untuk mengambil data dari tabel MySQL tutorials_tbl .

Contoh

Contoh berikut akan mengembalikan semua catatan dari¬†tabel¬†tutorials_tbl¬†–

root@host# mysql -u root -p password;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> SELECT * from tutorials_tbl

+————-+—————-+—————–+—————–+

| tutorial_id | tutorial_title | tutorial_author | submission_date |

+————-+—————-+—————–+—————–+

| 1 | Learn PHP | John Poul | 2007-05-21 |

| 2 | Learn MySQL | Abdul S | 2007-05-21 |

| 3 | JAVA Tutorial | Sanjay | 2007-05-21 |

+————-+—————-+—————–+—————–+

3 rows in set (0.01 sec)

mysql>

Mengambil Data Menggunakan Script PHP

PHP menggunakan fungsi mysqli query () atau mysql_query () untuk memilih record dari tabel MySQL. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

$mysqli‚Üíquery($sql,$resultmode)

Sr.No. Parameter & Deskripsi
1 $ sql

Diperlukan – Kueri SQL untuk memilih record dari tabel MySQL.

2 $ resultmode

Opsional РKonstanta MYSQLI_USE_RESULT atau MYSQLI_STORE_RESULT bergantung pada perilaku yang diinginkan. Secara default, MYSQLI_STORE_RESULT digunakan.

Contoh

Coba contoh berikut untuk memilih record dari tabel –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Creating MySQL Table</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$dbname = ‘TUTORIALS’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

 

$sql = “SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl”;

 

$result = $mysqli->query($sql);

 

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {

printf(“Id: %s, Title: %s, Author: %s, Date: %d <br />”,

$row[“tutorial_id”],

$row[“tutorial_title”],

$row[“tutorial_author”],

$row[“submission_date”]);

}

} else {

printf(‘No record found.<br />’);

}

mysqli_free_result($result);

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya. Di sini kita telah memasukkan beberapa record dalam tabel sebelum menjalankan skrip pilih.

Connected successfully.

Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021

Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021

Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021

Id: 4, Title: Java Tutorial, Author: Mahesh, Date: 2021

Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021

MySQLi – Klausul WHERE

Kita telah melihat perintah SQL SELECT untuk mengambil data dari tabel MySQL. Kita dapat menggunakan klausa bersyarat yang disebut Klausa WHERE untuk menyaring hasil. Dengan menggunakan klausa WHERE ini, kita dapat menentukan kriteria pemilihan untuk memilih record yang diperlukan dari tabel.

Sintaksis

Blok kode berikut memiliki sintaks SQL generik dari perintah SELECT dengan klausa WHERE untuk mengambil data dari tabel MySQL –

SELECT field1, field2,…fieldN table_name1, table_name2…

[WHERE condition1 [AND [OR]] condition2…..

  • Anda dapat menggunakan satu atau beberapa tabel yang dipisahkan oleh koma untuk menyertakan berbagai kondisi menggunakan klausa WHERE, tetapi klausa WHERE adalah bagian opsional dari perintah SELECT.
  • Anda dapat menentukan kondisi apapun menggunakan klausa WHERE.
  • Anda dapat menentukan lebih dari satu kondisi menggunakan¬†operator¬†DAN¬†atau¬†ATAU¬†.
  • Klausa WHERE dapat digunakan bersama dengan perintah DELETE atau UPDATE SQL juga untuk menentukan kondisi.

The MANA klausa bekerja seperti jika kondisi dalam bahasa pemrograman. Klausa ini digunakan untuk membandingkan nilai yang diberikan dengan nilai bidang yang tersedia di tabel MySQL. Jika nilai yang diberikan dari luar sama dengan nilai bidang yang tersedia di tabel MySQL, maka baris tersebut akan dikembalikan.

Berikut adalah daftar operator, yang dapat digunakan dengan klausa WHERE .

Asumsikan bidang A menampung 10 dan bidang B menampung 20, lalu –

Operator Deskripsi Contoh
= Memeriksa apakah nilai kedua operan sama atau tidak, jika ya, maka kondisinya menjadi benar. (A = B) tidak benar.
! = Memeriksa apakah nilai dari kedua operan sama atau tidak, jika nilainya tidak sama maka kondisinya menjadi benar. (A! = B) benar.
> Memeriksa apakah nilai operan kiri lebih besar dari nilai operan kanan, jika ya, maka kondisinya menjadi benar. (A> B) tidak benar.
< Memeriksa apakah nilai operan kiri kurang dari nilai operan kanan, jika ya maka kondisinya menjadi benar. (A <B) benar.
> = Memeriksa apakah nilai operan kiri lebih besar dari atau sama dengan nilai operan kanan, jika ya, maka kondisinya menjadi benar. (A> = B) tidak benar.
<= Memeriksa apakah nilai operan kiri kurang dari atau sama dengan nilai operan kanan, jika ya, maka kondisinya menjadi benar. (A <= B) benar.

Klausa WHERE sangat berguna saat Anda ingin mengambil baris yang dipilih dari tabel, terutama saat Anda menggunakan MySQL Join . Gabungan dibahas di bab lain.

Ini adalah praktik umum untuk mencari catatan menggunakan Kunci Utama untuk membuat pencarian lebih cepat.

Jika kondisi yang diberikan tidak cocok dengan rekaman apa pun dalam tabel, kueri tidak akan mengembalikan baris apa pun.

Mengambil Data dari Command Prompt

Ini akan menggunakan perintah SQL SELECT dengan klausa WHERE untuk mengambil data yang dipilih dari tabel MySQL –¬†tutorials_tbl¬†.

Contoh

Contoh berikut akan mengembalikan semua record dari tabel tutorials_tbl yang nama pembuatnya adalah Sanjay .

root@host# mysql -u root -p password;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> SELECT * from tutorials_tbl WHERE tutorial_author = ‘Sanjay’;

+————-+—————-+—————–+—————–+

| tutorial_id | tutorial_title | tutorial_author | submission_date |

+————-+—————-+—————–+—————–+

| 3 | JAVA Tutorial | Sanjay | 2007-05-21 |

+————-+—————-+—————–+—————–+

1 rows in set (0.01 sec)

mysql>

Kecuali melakukan¬†perbandingan¬†LIKE¬†pada string, perbandingan tersebut tidak peka huruf besar / kecil.¬†Anda dapat membuat pencarian Anda peka huruf besar kecil dengan menggunakan¬†kata kunci¬†BINER¬†sebagai berikut –

root@host# mysql -u root -p password;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> SELECT * from tutorials_tbl \

WHERE BINARY tutorial_author = ‘sanjay’;

Empty set (0.02 sec)

mysql>

Mengambil Data Menggunakan Script PHP

PHP menggunakan fungsi mysqli query () atau mysql_query () untuk memilih record dalam tabel MySQL menggunakan klausa where. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

$mysqli‚Üíquery($sql,$resultmode)

Sr.No. Parameter & Deskripsi
1 $ sql

Diperlukan – Kueri SQL untuk memilih record dalam tabel MySQL menggunakan Where Clause.

2 $ resultmode

Opsional РKonstanta MYSQLI_USE_RESULT atau MYSQLI_STORE_RESULT bergantung pada perilaku yang diinginkan. Secara default, MYSQLI_STORE_RESULT digunakan.

Contoh

Coba contoh berikut untuk memilih rekaman menggunakan klausa where dalam tabel –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Using Where Clause</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$dbname = ‘TUTORIALS’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

 

$sql = ‘SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl where tutorial_author = “Mahesh”‘;

 

$result = $mysqli‚Üíquery($sql);

 

if ($result‚Üínum_rows > 0) {

while($row = $result‚Üífetch_assoc()) {

printf(“Id: %s, Title: %s, Author: %s, Date: %d <br />”,

$row[“tutorial_id”],

$row[“tutorial_title”],

$row[“tutorial_author”],

$row[“submission_date”]);

}

} else {

printf(‘No record found.<br />’);

}

mysqli_free_result($result);

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya. Di sini kita telah memasukkan beberapa record dalam tabel sebelum menjalankan skrip pilih.

Connected successfully.

Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021

Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021

Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021

MySQLi – Perbarui Kueri

Mungkin ada persyaratan di mana data yang ada di tabel MySQL perlu dimodifikasi. Anda dapat melakukannya dengan menggunakan perintah SQL UPDATE . Ini akan mengubah nilai bidang apa pun dari tabel MySQL mana pun.

Sintaksis

Blok kode berikut memiliki sintaks SQL generik dari perintah UPDATE untuk mengubah data di tabel MySQL –

UPDATE table_name SET field1 = new-value1, field2 = new-value2

[WHERE Clause]

  • Anda dapat memperbarui satu atau lebih bidang sekaligus.
  • Anda dapat menentukan kondisi apapun menggunakan klausa WHERE.
  • Anda dapat memperbarui nilai dalam satu tabel dalam satu waktu.

Klausa WHERE sangat berguna saat Anda ingin memperbarui baris yang dipilih dalam tabel.

Memperbarui Data dari Command Prompt

Ini akan menggunakan perintah SQL UPDATE dengan klausa WHERE untuk memperbarui data yang dipilih dalam tabel MySQL tutorials_tbl .

Contoh

Contoh berikut akan memperbarui bidang tutorial_title untuk rekaman yang memiliki tutorial_id sebagai 3.

root@host# mysql -u root -p password;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> UPDATE tutorials_tbl

‚Üí SET tutorial_title = ‘Learning JAVA’

‚Üí WHERE tutorial_id = 3;

Query OK, 1 row affected (0.04 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql>

Memperbarui Data Menggunakan Script PHP

PHP menggunakan fungsi mysqli query () atau mysql_query () untuk memperbarui record dalam tabel MySQL. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

$mysqli‚Üíquery($sql,$resultmode)

Sr.No. Parameter & Deskripsi
1 $ sql

Diperlukan – Kueri SQL untuk memperbarui record di tabel MySQL.

2 $ resultmode

Opsional РKonstanta MYSQLI_USE_RESULT atau MYSQLI_STORE_RESULT bergantung pada perilaku yang diinginkan. Secara default, MYSQLI_STORE_RESULT digunakan.

Contoh

Coba contoh berikut untuk memperbarui record dalam tabel –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Updating MySQL Table</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$dbname = ‘TUTORIALS’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

 

if ($mysqli‚Üíquery(‘UPDATE tutorials_tbl set tutorial_title = “Learning Java” where tutorial_id = 4’)) {

printf(“Table tutorials_tbl updated successfully.<br />”);

}

if ($mysqli‚Üíerrno) {

printf(“Could not update table: %s<br />”, $mysqli‚Üíerror);

}

$sql = “SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl”;

 

$result = $mysqli‚Üíquery($sql);

 

if ($result‚Üínum_rows > 0) {

while($row = $result‚Üífetch_assoc()) {

printf(“Id: %s, Title: %s, Author: %s, Date: %d <br />”,

$row[“tutorial_id”],

$row[“tutorial_title”],

$row[“tutorial_author”],

$row[“submission_date”]);

}

} else {

printf(‘No record found.<br />’);

}

mysqli_free_result($result);

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya. Di sini kita telah memasukkan beberapa record dalam tabel sebelum menjalankan skrip pilih.

Connected successfully.

Table tutorials_tbl updated successfully.

Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021

Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021

Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021

Id: 4, Title: Learning Java, Author: Mahesh, Date: 2021

Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021

MySQLi – Hapus Kueri

Jika Anda ingin menghapus record dari tabel MySQL mana pun, Anda dapat menggunakan perintah SQL DELETE FROM . Anda dapat menggunakan perintah ini di mysql> prompt serta di skrip seperti PHP.

Sintaksis

Blok kode berikut memiliki sintaks SQL generik dari perintah DELETE untuk menghapus data dari tabel MySQL.

DELETE FROM table_name [WHERE Clause]

  • Jika klausa WHERE tidak ditentukan, semua catatan akan dihapus dari tabel MySQL yang diberikan.
  • Anda dapat menentukan kondisi apapun menggunakan klausa WHERE.
  • Anda dapat menghapus rekaman dalam satu tabel dalam satu waktu.

Klausa WHERE sangat berguna saat Anda ingin menghapus baris yang dipilih dalam tabel.

Menghapus Data dari Command Prompt

Ini akan menggunakan perintah SQL DELETE dengan klausa WHERE untuk menghapus data yang dipilih ke dalam tabel MySQL –¬†tutorials_tbl¬†.

Contoh

Contoh berikut akan menghapus record dari tutorial_tbl yang tutorial_id-nya adalah 3.

root@host# mysql -u root -p password;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> DELETE FROM tutorials_tbl WHERE tutorial_id=3;

Query OK, 1 row affected (0.23 sec)

mysql>

Menghapus Data Menggunakan Script PHP

PHP menggunakan fungsi mysqli query () atau mysql_query () untuk menghapus record dalam tabel MySQL. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

$mysqli‚Üíquery($sql,$resultmode)

Sr.No. Parameter & Deskripsi
1 $ sql

Diperlukan – Kueri SQL untuk menghapus record dalam tabel MySQL.

2 $ resultmode

Opsional РKonstanta MYSQLI_USE_RESULT atau MYSQLI_STORE_RESULT bergantung pada perilaku yang diinginkan. Secara default, MYSQLI_STORE_RESULT digunakan.

Contoh

Coba contoh berikut untuk menghapus record dalam tabel –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Deleting MySQL Table record</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$dbname = ‘TUTORIALS’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

 

if ($mysqli‚Üíquery(‘DELETE FROM tutorials_tbl where tutorial_id = 4’)) {

printf(“Table tutorials_tbl record deleted successfully.<br />”);

}

if ($mysqli‚Üíerrno) {

printf(“Could not delete record from table: %s<br />”, $mysqli‚Üíerror);

}

 

$sql = “SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl”;

 

$result = $mysqli‚Üíquery($sql);

 

if ($result‚Üínum_rows > 0) {

while($row = $result‚Üífetch_assoc()) {

printf(“Id: %s, Title: %s, Author: %s, Date: %d <br />”,

$row[“tutorial_id”],

$row[“tutorial_title”],

$row[“tutorial_author”],

$row[“submission_date”]);

}

} else {

printf(‘No record found.<br />’);

}

mysqli_free_result($result);

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya. Di sini kita telah memasukkan beberapa record dalam tabel sebelum menjalankan skrip pilih.

Connected successfully.

Table tutorials_tbl record deleted successfully.

Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021

Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021

Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021

Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021

MySQLi – Seperti Klausul

Kita telah melihat perintah SQL SELECT untuk mengambil data dari tabel MySQL. Kita juga dapat menggunakan klausa bersyarat yang disebut klausa WHERE untuk memilih rekaman yang diperlukan.

Klausa WHERE dengan tanda ‘sama dengan’ (=) berfungsi dengan baik jika kita ingin melakukan pencocokan tepat.¬†Seperti jika “tutorial_author = ‘Sanjay'”.¬†Tapi mungkin ada persyaratan di mana kita ingin menyaring semua hasil di mana nama tutorial_author harus mengandung “jay”.¬†Ini dapat ditangani menggunakan¬†SQL LIKE Clause¬†bersama dengan klausa WHERE.

Jika klausa SQL LIKE digunakan bersama dengan karakter%, maka itu akan berfungsi seperti karakter meta (*) seperti di UNIX, sambil mencantumkan semua file atau direktori pada prompt perintah. Tanpa karakter%, klausa LIKE akan sama dengan tanda sama dengan dengan klausa WHERE.

Sintaksis

Blok kode berikut memiliki sintaks SQL generik dari perintah SELECT bersama dengan klausa LIKE untuk mengambil data dari tabel MySQL.

SELECT field1, field2,…fieldN table_name1, table_name2…

WHERE field1 LIKE condition1 [AND [OR]] filed2 = ‘somevalue’

  • Anda dapat menentukan kondisi apapun menggunakan klausa WHERE.
  • Anda dapat menggunakan klausa LIKE bersama dengan klausa WHERE.
  • Anda dapat menggunakan klausa LIKE sebagai pengganti tanda¬†sama dengan¬†.
  • Ketika LIKE digunakan bersama dengan tanda% maka itu akan bekerja seperti pencarian karakter meta.
  • Anda dapat menentukan lebih dari satu kondisi menggunakan¬†operator¬†DAN¬†atau¬†ATAU¬†.
  • Klausa WHERE … LIKE dapat digunakan bersama dengan perintah DELETE atau UPDATE SQL juga untuk menentukan kondisi.

Menggunakan klausa LIKE di Command Prompt

Ini akan menggunakan perintah SQL SELECT dengan klausa WHERE … LIKE untuk mengambil data yang dipilih dari tabel MySQL –¬†tutorials_tbl¬†.

Contoh

Contoh berikut akan mengembalikan semua record dari¬†tabel¬†tutorials_tbl¬†yang nama penulisnya diakhiri dengan¬†jay¬†–

root@host# mysql -u root -p password;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> SELECT * from tutorials_tbl

‚Üí WHERE tutorial_author LIKE ‘%jay’;

+————-+—————-+—————–+—————–+

| tutorial_id | tutorial_title | tutorial_author | submission_date |

+————-+—————-+—————–+—————–+

| 3 | JAVA Tutorial | Sanjay | 2007-05-21 |

+————-+—————-+—————–+—————–+

1 rows in set (0.01 sec)

mysql>

Menggunakan klausa LIKE di dalam Script PHP

PHP menggunakan fungsi mysqli query () atau mysql_query () untuk memilih record dalam tabel MySQL menggunakan klausa Like. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

$mysqli‚Üíquery($sql,$resultmode)

Sr.No. Parameter & Deskripsi
1 $ sql

Diperlukan – Kueri SQL untuk memilih record dalam tabel MySQL menggunakan Like Clause.

2 $ resultmode

Opsional РKonstanta MYSQLI_USE_RESULT atau MYSQLI_STORE_RESULT bergantung pada perilaku yang diinginkan. Secara default, MYSQLI_STORE_RESULT digunakan.

Contoh

Coba contoh berikut untuk memilih rekaman menggunakan klausa like dalam tabel –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Using Like Clause</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$dbname = ‘TUTORIALS’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

 

$sql = ‘SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl where tutorial_author like “Mah%”‘;

 

$result = $mysqli‚Üíquery($sql);

 

if ($result‚Üínum_rows > 0) {

while($row = $result‚Üífetch_assoc()) {

printf(“Id: %s, Title: %s, Author: %s, Date: %d <br />”,

$row[“tutorial_id”],

$row[“tutorial_title”],

$row[“tutorial_author”],

$row[“submission_date”]);

}

} else {

printf(‘No record found.<br />’);

}

mysqli_free_result($result);

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya. Di sini kita telah memasukkan beberapa record dalam tabel sebelum menjalankan skrip pilih.

Connected successfully.

Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021

Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021

Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021

MySQLi – Hasil Penyortiran

Kita telah melihat perintah SQL SELECT untuk mengambil data dari tabel MySQL. Saat Anda memilih baris, server MySQL bebas mengembalikannya dalam urutan apa pun, kecuali Anda menginstruksikan sebaliknya dengan mengatakan cara mengurutkan hasilnya. Tapi, Anda mengurutkan hasil dengan menambahkan klausa ORDER BY yang memberi nama kolom atau kolom yang ingin Anda urutkan.

Sintaksis

Blok kode berikut adalah sintaks SQL generik dari perintah SELECT bersama dengan klausa ORDER BY untuk mengurutkan data dari tabel MySQL.

SELECT field1, field2,…fieldN table_name1, table_name2…

ORDER BY field1, [field2…] [ASC [DESC]]

  • Anda dapat mengurutkan hasil yang dikembalikan di bidang mana pun, jika bidang itu dicantumkan.
  • Anda dapat mengurutkan hasil di lebih dari satu bidang.
  • Anda dapat menggunakan kata kunci ASC atau DESC untuk mendapatkan hasil dalam urutan naik atau turun.¬†Secara default, ini adalah urutan menaik.
  • Anda dapat menggunakan klausa WHERE … LIKE seperti biasa untuk membuat suatu kondisi.

Menggunakan klausa ORDER BY di Command Prompt

Ini akan menggunakan perintah SQL SELECT dengan¬†klausa¬†ORDER BY¬†untuk mengambil data dari tabel MySQL –¬†tutorials_tbl¬†.

Contoh

Cobalah contoh berikut, yang mengembalikan hasil dalam urutan menaik.

root@host# mysql -u root -p password;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> SELECT * from tutorials_tbl ORDER BY tutorial_author ASC

+————-+—————-+—————–+—————–+

| tutorial_id | tutorial_title | tutorial_author | submission_date |

+————-+—————-+—————–+—————–+

| 2 | Learn MySQL | Abdul S | 2007-05-24 |

| 1 | Learn PHP | John Poul | 2007-05-24 |

| 3 | JAVA Tutorial | Sanjay | 2007-05-06 |

+————-+—————-+—————–+—————–+

3 rows in set (0.42 sec)

mysql>

Verifikasi semua nama penulis yang terdaftar dalam urutan menaik.

Menggunakan klausa ORDER BY di dalam Script PHP

PHP menggunakan fungsi mysqli query () atau mysql_query () untuk mendapatkan catatan yang diurutkan dari tabel MySQL. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

$mysqli‚Üíquery($sql,$resultmode)

Sr.No. Parameter & Deskripsi
1 $ sql

Diperlukan – Kueri SQL untuk mendapatkan rekaman yang diurutkan dari tabel.

2 $ resultmode

Opsional РKonstanta MYSQLI_USE_RESULT atau MYSQLI_STORE_RESULT bergantung pada perilaku yang diinginkan. Secara default, MYSQLI_STORE_RESULT digunakan.

Contoh

Coba contoh berikut untuk mendapatkan rekaman yang diurutkan dari tabel –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Sorting MySQL Table records</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$dbname = ‘TUTORIALS’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

 

$sql = “SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl order by tutorial_title asc”;

$result = $mysqli‚Üíquery($sql);

 

if ($result‚Üínum_rows > 0) {

while($row = $result‚Üífetch_assoc()) {

printf(“Id: %s, Title: %s, Author: %s, Date: %d <br />”,

$row[“tutorial_id”],

$row[“tutorial_title”],

$row[“tutorial_author”],

$row[“submission_date”]);

}

} else {

printf(‘No record found.<br />’);

}

mysqli_free_result($result);

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya.

Connected successfully.

Id: 5, Title: Apache Tutorial, Author: Suresh, Date: 2021

Id: 2, Title: HTML Tutorial, Author: Mahesh, Date: 2021

Id: 1, Title: MySQL Tutorial, Author: Mahesh, Date: 2021

Id: 3, Title: PHP Tutorial, Author: Mahesh, Date: 2021

MySQLi – Menggunakan Gabungan

Pada bab sebelumnya, kami mendapatkan data dari satu tabel pada satu waktu. Ini cukup bagus untuk pengambilan sederhana, tetapi di sebagian besar penggunaan MySQL dunia nyata, Anda akan sering membutuhkan data dari beberapa tabel dalam satu kueri.

Anda dapat menggunakan beberapa tabel dalam satu kueri SQL Anda. Tindakan bergabung di MySQL mengacu pada penghancuran dua atau lebih tabel menjadi satu tabel.

Anda dapat menggunakan JOINS dalam pernyataan SELECT, UPDATE dan DELETE untuk menggabungkan tabel MySQL. Kita akan melihat contoh LEFT JOIN juga yang berbeda dari MySQL JOIN sederhana.

Menggunakan Bergabung di Command Prompt

Asumsikan kita memiliki dua tabel¬†tcount_tbl¬†dan¬†tutorials_tbl¬†, di TUTORIALS.¬†Sekarang lihat contoh yang diberikan di bawah ini –

Contoh

Contoh berikut –

root@host# mysql -u root -p password;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> SELECT * FROM tcount_tbl;

+—————–+—————-+

| tutorial_author | tutorial_count |

+—————–+—————-+

| mahran | 20 |

| mahnaz | NULL |

| Jen | NULL |

| Gill | 20 |

| John Poul | 1 |

| Sanjay | 1 |

+—————–+—————-+

6 rows in set (0.01 sec)

mysql> SELECT * from tutorials_tbl;

+————-+—————-+—————–+—————–+

| tutorial_id | tutorial_title | tutorial_author | submission_date |

+————-+—————-+—————–+—————–+

| 1 | Learn PHP | John Poul | 2007-05-24 |

| 2 | Learn MySQL | Abdul S | 2007-05-24 |

| 3 | JAVA Tutorial | Sanjay | 2007-05-06 |

+————-+—————-+—————–+—————–+

3 rows in set (0.00 sec)

mysql>

Sekarang kita dapat menulis kueri SQL untuk menggabungkan dua tabel ini. Kueri ini akan memilih semua penulis dari tabel tutorials_tbl dan akan mengambil jumlah tutorial yang sesuai dari tcount_tbl .

mysql> SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count

‚Üí FROM tutorials_tbl a, tcount_tbl b

‚Üí WHERE a.tutorial_author = b.tutorial_author;

+————-+—————–+—————-+

| tutorial_id | tutorial_author | tutorial_count |

+————-+—————–+—————-+

| 1 | John Poul | 1 |

| 3 | Sanjay | 1 |

+————-+—————–+—————-+

2 rows in set (0.01 sec)

mysql>

Menggunakan Gabungan dalam Skrip PHP

PHP menggunakan fungsi mysqli query () atau mysql_query () untuk mendapatkan record dari tabel MySQL menggunakan Joins. Fungsi ini mengambil dua parameter dan mengembalikan TRUE pada kesuksesan atau FALSE pada kegagalan.

Sintaksis

$mysqli‚Üíquery($sql,$resultmode)

Sr.No. Parameter & Deskripsi
1 $ sql

Diperlukan – Kueri SQL untuk mendapatkan rekaman dari beberapa tabel menggunakan Gabung.

2 $ resultmode

Opsional РKonstanta MYSQLI_USE_RESULT atau MYSQLI_STORE_RESULT bergantung pada perilaku yang diinginkan. Secara default, MYSQLI_STORE_RESULT digunakan.

Pertama buat tabel di MySQL menggunakan skrip berikut dan masukkan dua catatan.

create table tcount_tbl(

tutorial_author VARCHAR(40) NOT NULL,

tutorial_count int

);

insert into tcount_tbl values(‘Mahesh’, 3);

insert into tcount_tbl values(‘Suresh’, 1);

Contoh

Coba contoh berikut untuk mendapatkan rekaman dari dua tabel menggunakan Gabung.¬†–

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Using joins on MySQL Tables</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$dbname = ‘TUTORIALS’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

 

$sql = ‘SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count

FROM tutorials_tbl a, tcount_tbl b

WHERE a.tutorial_author = b.tutorial_author’;

 

$result = $mysqli‚Üíquery($sql);

 

if ($result‚Üínum_rows > 0) {

while($row = $result‚Üífetch_assoc()) {

printf(“Id: %s, Author: %s, Count: %d <br />”,

$row[“tutorial_id”],

$row[“tutorial_author”],

$row[“tutorial_count”]);

}

} else {

printf(‘No record found.<br />’);

}

mysqli_free_result($result);

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya.

Connected successfully.

Id: 1, Author: Mahesh, Count: 3

Id: 2, Author: Mahesh, Count: 3

Id: 3, Author: Mahesh, Count: 3

Id: 5, Author: Suresh, Count: 1

MySQL KIRI GABUNG

Gabung kiri MySQL berbeda dari gabungan sederhana. MySQL LEFT JOIN memberikan pertimbangan ekstra pada tabel di sebelah kiri.

Jika saya melakukan LEFT JOIN , saya mendapatkan semua record yang cocok dengan cara yang sama dan SELAIN ITU saya mendapatkan record ekstra untuk setiap record yang tidak cocok di tabel kiri join: dengan demikian memastikan (dalam contoh saya) bahwa setiap PENULIS mendapat a menyebut.

Contoh

Coba contoh berikut untuk memahami LEFT JOIN.

root@host# mysql -u root -p password;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count

‚Üí FROM tutorials_tbl a LEFT JOIN tcount_tbl b

‚Üí ON a.tutorial_author = b.tutorial_author;

+————-+—————–+—————-+

| tutorial_id | tutorial_author | tutorial_count |

+————-+—————–+—————-+

| 1 | John Poul | 1 |

| 2 | Abdul S | NULL |

| 3 | Sanjay | 1 |

+————-+—————–+—————-+

3 rows in set (0.02 sec)

Anda perlu melakukan lebih banyak latihan agar terbiasa dengan JOINS. Ini adalah konsep yang sedikit rumit di MySQL / SQL dan akan menjadi lebih jelas saat melakukan contoh nyata.

MySQLi – Menangani Nilai NULL

Kami telah melihat perintah SQL SELECT bersama dengan klausa WHERE untuk mengambil data dari tabel MySQL, tetapi ketika kami mencoba memberikan kondisi, yang membandingkan bidang atau nilai kolom dengan NULL , itu tidak berfungsi dengan baik.

Untuk menangani situasi seperti itu, MySQL menyediakan tiga operator –

  • IS NULL¬†– Operator ini mengembalikan true, jika nilai kolom adalah NULL.
  • IS NOT NULL¬†– Operator ini mengembalikan true, jika nilai kolom bukan NULL.
  • <=>¬†– Operator ini membandingkan nilai, yang (tidak seperti operator =) adalah benar bahkan untuk dua nilai NULL.

Kondisi yang melibatkan NULL adalah khusus. Anda tidak dapat menggunakan = NULL atau! = NULL untuk mencari nilai NULL di kolom. Perbandingan semacam itu selalu gagal karena tidak mungkin untuk mengatakan apakah itu benar atau tidak. Terkadang, bahkan NULL = NULL gagal.

Untuk mencari kolom yang ada atau bukan NULL, gunakan IS NULL atau IS NOT NULL .

Menggunakan nilai NULL di Command Prompt

Asumsikan bahwa ada tabel bernama tcount_tbl di database TUTORIALS dan berisi dua kolom yaitu tutorial_author dan tutorial_count , di mana tutorial_count NULL menunjukkan bahwa nilainya tidak diketahui.

Contoh

Coba contoh berikut –

root@host# mysql -u root -p password;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> create table tcount_tbl

‚Üí (

‚Üí tutorial_author varchar(40) NOT NULL,

‚Üí tutorial_count INT

‚Üí );

Query OK, 0 rows affected (0.05 sec)

mysql> INSERT INTO tcount_tbl

‚Üí (tutorial_author, tutorial_count) values (‘mahran’, 20);

mysql> INSERT INTO tcount_tbl

‚Üí (tutorial_author, tutorial_count) values (‘mahnaz’, NULL);

mysql> INSERT INTO tcount_tbl

‚Üí (tutorial_author, tutorial_count) values (‘Jen’, NULL);

mysql> INSERT INTO tcount_tbl

‚Üí (tutorial_author, tutorial_count) values (‘Gill’, 20);

mysql> SELECT * from tcount_tbl;

+—————–+—————-+

| tutorial_author | tutorial_count |

+—————–+—————-+

| mahran | 20 |

| mahnaz | NULL |

| Jen | NULL |

| Gill | 20 |

+—————–+—————-+

4 rows in set (0.00 sec)

mysql>

Anda dapat melihat bahwa = dan¬†! =¬†Tidak berfungsi dengan nilai NULL sebagai berikut –

mysql> SELECT * FROM tcount_tbl WHERE tutorial_count = NULL;

Empty set (0.00 sec)

mysql> SELECT * FROM tcount_tbl WHERE tutorial_count != NULL;

Empty set (0.01 sec)

Untuk menemukan catatan di mana kolom tutorial_count adalah atau bukan NULL, kueri harus ditulis seperti yang ditunjukkan pada program berikut.

mysql> SELECT * FROM tcount_tbl

‚Üí WHERE tutorial_count IS NULL;

+—————–+—————-+

| tutorial_author | tutorial_count |

+—————–+—————-+

| mahnaz | NULL |

| Jen | NULL |

+—————–+—————-+

2 rows in set (0.00 sec)

mysql> SELECT * from tcount_tbl

‚Üí WHERE tutorial_count IS NOT NULL;

+—————–+—————-+

| tutorial_author | tutorial_count |

+—————–+—————-+

| mahran | 20 |

| Gill | 20 |

+—————–+—————-+

2 rows in set (0.00 sec)

Menangani Nilai NULL dalam Script PHP

Anda dapat menggunakan kondisi¬†if … else¬†untuk menyiapkan kueri berdasarkan nilai NULL.

Contoh berikut mengambil tutorial_count dari luar lalu membandingkannya dengan nilai yang tersedia di tabel.

Contoh

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Handling NULL</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$dbname = ‘TUTORIALS’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

$tutorial_count = null;

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

 

if( isset($tutorial_count )) {

$sql = ‘SELECT tutorial_author, tutorial_count

FROM tcount_tbl

WHERE tutorial_count = ‘ + $tutorial_count;

} else {

$sql = ‘SELECT tutorial_author, tutorial_count

FROM tcount_tbl

WHERE tutorial_count IS NULL’;

}

$result = $mysqli‚Üíquery($sql);

 

if ($result‚Üínum_rows > 0) {

while($row = $result‚Üífetch_assoc()) {

printf(“Author: %s, Count: %d <br />”,

$row[“tutorial_author”],

$row[“tutorial_count”]);

}

} else {

printf(‘No record found.<br />’);

}

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya.

Connected successfully.

No record found.

MySQLi – Info Database

Memperoleh dan Menggunakan Metadata MySQL

Ada tiga jenis informasi yang Anda ingin dapatkan dari MySQL.

  • Informasi tentang hasil kueri¬†– Ini termasuk jumlah rekaman yang dipengaruhi oleh pernyataan SELECT, UPDATE atau DELETE.
  • Informasi tentang tabel dan database¬†– Ini termasuk informasi yang berkaitan dengan struktur tabel dan database.
  • Informasi tentang server MySQL¬†– Ini termasuk status server database, nomor versi, dll.

Sangat mudah untuk mendapatkan semua informasi ini pada prompt MySQL, tetapi saat menggunakan PERL atau PHP API, kita perlu memanggil berbagai API secara eksplisit untuk mendapatkan semua informasi ini.

Memperoleh Jumlah Baris yang Dipengaruhi oleh Kueri

Sekarang mari kita lihat bagaimana mendapatkan informasi ini.

Contoh PERL

Dalam skrip DBI, jumlah baris yang terpengaruh dikembalikan oleh perintah do () atau oleh perintah execute () , bergantung pada cara Anda menjalankan kueri.

# Method 1

# execute $query using do( )

my $count = $dbh‚Üído ($query);

# report 0 rows if an error occurred

printf “%d rows were affected\n”, (defined ($count) ? $count : 0);

# Method 2

# execute query using prepare( ) plus execute( )

my $sth = $dbh‚Üíprepare ($query);

my $count = $sth‚Üíexecute ( );

printf “%d rows were affected\n”, (defined ($count) ? $count : 0);

Contoh PHP

Di PHP, aktifkan fungsi mysql_affected_rows () untuk mengetahui berapa banyak baris yang diubah kueri.

$result_id = mysql_query ($query, $conn_id);

# report 0 rows if the query failed

$count = ($result_id ? mysql_affected_rows ($conn_id) : 0);

print (“$count rows were affected\n”);

Daftar Tabel dan Database

Sangat mudah untuk membuat daftar semua database dan tabel yang tersedia dengan server database. Hasil Anda mungkin nol jika Anda tidak memiliki hak yang memadai.

Terlepas dari metode yang ditunjukkan pada blok kode berikut, Anda dapat menggunakan kueri SHOW TABLES atau SHOW DATABASES untuk mendapatkan daftar tabel atau database baik dalam PHP atau PERL.

Contoh PERL

# Get all the tables available in current database.

my @tables = $dbh‚Üítables ( );

foreach $table (@tables ){

print “Table Name $table\n”;

}

Contoh PHP

Coba contoh berikut untuk mendapatkan info database –

Salin dan tempel contoh berikut sebagai mysql_example.php –

<html>

<head>

<title>Getting MySQL Database Info</title>

</head>

<body>

<?php

$dbhost = ‘localhost’;

$dbuser = ‘root’;

$dbpass = ‘root@123’;

$dbname = ‘TUTORIALS’;

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

$tutorial_count = null;

 

if($mysqli‚Üíconnect_errno ) {

printf(“Connect failed: %s<br />”, $mysqli‚Üíconnect_error);

exit();

}

printf(‘Connected successfully.<br />’);

 

if ($result = mysqli_query($mysqli, “SELECT DATABASE()”)) {

$row = mysqli_fetch_row($result);

printf(“Default database is %s<br />”, $row[0]);

mysqli_free_result($result);

}

$mysqli‚Üíclose();

?>

</body>

</html>

Keluaran

Akses mysql_example.php yang digunakan di server web apache dan verifikasi hasilnya.

Connected successfully.

Default database is tutorials

Mendapatkan Metadata Server

Ada beberapa perintah penting di MySQL yang dapat dijalankan baik pada prompt MySQL atau dengan menggunakan skrip seperti PHP untuk mendapatkan berbagai informasi penting tentang server database.

Sr.No. Perintah & Deskripsi
1 PILIH VERSI ()

String versi server

2 PILIH DATABASE ()

Nama database saat ini (kosong jika tidak ada)

3 PILIH PENGGUNA ()

Nama pengguna saat ini

4 TAMPILKAN STATUS

Indikator status server

5 TAMPILKAN VARIABEL

Variabel konfigurasi server

MySQLi – Instalasi

Mendownload MySQL

Ekstensi MySQLi dirancang untuk bekerja dengan MySQL versi 4.1.13 atau yang lebih baru, Jadi harus mengunduh MySQL. Semua unduhan untuk MySQL berada di Unduhan MySQL . Pilih nomor versi terbaru untuk MySQL Community Server yang Anda inginkan dan, sedapat mungkin, platform yang Anda inginkan.

Menginstal MySQL di Linux / UNIX

Cara yang disarankan untuk menginstal MySQL di sistem Linux adalah melalui RPM.¬†MySQL AB membuat RPM berikut tersedia untuk diunduh di situs webnya –

  • MySQL¬†– Server database MySQL, yang mengelola database dan tabel, mengontrol akses pengguna, dan memproses kueri SQL.
  • MySQL-client¬†– Program klien MySQL, yang memungkinkan untuk terhubung dan berinteraksi dengan server.
  • MySQL-devel¬†– Pustaka dan file header yang berguna saat menyusun program lain yang menggunakan MySQL.
  • Berbagi¬†-MySQL¬†– Pustaka bersama untuk klien MySQL.
  • MySQL-bench¬†– Alat tolok ukur dan pengujian kinerja untuk server database MySQL.

RPM MySQL yang tercantum di sini semuanya dibangun di atas sistem Linux SuSE, tetapi biasanya akan berfungsi pada varian Linux lainnya tanpa kesulitan.

Sekarang, ikuti langkah-langkah berikut untuk melanjutkan instalasi –

  • Masuk ke sistem menggunakan¬†pengguna¬†root¬†.
  • Beralih ke direktori yang berisi RPM –
  • Instal server database MySQL dengan menjalankan perintah berikut.¬†Ingatlah untuk mengganti nama file yang dicetak miring dengan nama file RPM Anda.

[root@host]# rpm -i MySQL-5.0.9-0.i386.rpm

Perintah di atas menangani penginstalan server MySQL, membuat pengguna MySQL, membuat konfigurasi yang diperlukan, dan memulai server MySQL secara otomatis.

Anda dapat menemukan semua binari terkait MySQL di / usr / bin dan / usr / sbin. Semua tabel dan database akan dibuat di direktori / var / lib / mysql.

  • Ini opsional tetapi langkah yang disarankan untuk menginstal RPM yang tersisa dengan cara yang sama –

[root@host]# rpm -i MySQL-client-5.0.9-0.i386.rpm

[root@host]# rpm -i MySQL-devel-5.0.9-0.i386.rpm

[root@host]# rpm -i MySQL-shared-5.0.9-0.i386.rpm

[root@host]# rpm -i MySQL-bench-5.0.9-0.i386.rpm

Menginstal MySQL di Windows

Instalasi default pada versi Windows apa pun sekarang jauh lebih mudah daripada sebelumnya, karena MySQL sekarang dikemas rapi dengan penginstal. Cukup unduh paket penginstal, unzip di mana saja, dan jalankan setup.exe.

Setup.exe penginstal default akan memandu Anda melalui proses sepele dan secara default akan menginstal semuanya di bawah C: \ mysql.

Uji server dengan mengaktifkannya dari prompt perintah untuk pertama kali.¬†Pergi ke lokasi server mysqld yang mungkin C: \ mysql \ bin, dan ketik –

mysqld.exe –console

CATATAN РJika Anda menggunakan NT, maka Anda harus menggunakan mysqld-nt.exe daripada mysqld.exe

Jika semuanya berjalan dengan baik, Anda akan melihat beberapa pesan tentang startup dan InnoDB. Jika tidak, Anda mungkin memiliki masalah izin. Pastikan bahwa direktori yang menyimpan data Anda dapat diakses oleh pengguna mana pun (mungkin mysql) yang menjalankan proses database.

MySQL tidak akan menambahkan dirinya sendiri ke menu start, dan tidak ada cara GUI yang bagus untuk menghentikan server. Oleh karena itu, jika Anda cenderung memulai server dengan mengklik ganda mysqld yang dapat dieksekusi, Anda harus ingat untuk menghentikan proses secara manual dengan menggunakan mysqladmin, Daftar Tugas, Pengelola Tugas, atau cara khusus Windows lainnya.

Memverifikasi Instalasi MySQL

Setelah MySQL berhasil diinstal, tabel dasar telah diinisialisasi, dan server telah dimulai, Anda dapat memverifikasi bahwa semuanya berfungsi sebagaimana mestinya melalui beberapa tes sederhana.

Gunakan Utilitas mysqladmin untuk Mendapatkan Status Server

Gunakan biner mysqladmin untuk memeriksa versi server. Biner ini akan tersedia di / usr / bin di linux dan di C: \ mysql \ bin di windows.

[root@host]# mysqladmin –version

Ini akan menghasilkan hasil berikut di Linux.¬†Ini mungkin berbeda tergantung pada instalasi Anda –

mysqladmin Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386

Jika Anda tidak mendapatkan pesan seperti itu, mungkin ada masalah dalam instalasi Anda dan Anda memerlukan bantuan untuk memperbaikinya.

Jalankan perintah SQL sederhana menggunakan Klien MySQL

Anda dapat terhubung ke server MySQL Anda dengan menggunakan klien MySQL menggunakan perintah mysql . Saat ini, Anda tidak perlu memberikan kata sandi apa pun karena secara default akan dikosongkan.

Jadi gunakan saja perintah berikut

[root@host]# mysql

Itu harus dihargai dengan prompt mysql>.¬†Sekarang, Anda terhubung ke server MySQL dan Anda dapat menjalankan semua perintah SQL di mysql> prompt sebagai berikut –

mysql> SHOW DATABASES;

+———-+

| Database |

+———-+

| mysql |

| test |

+———-+

2 rows in set (0.13 sec)

Langkah-langkah Pasca-instalasi

MySQL dikirimkan dengan kata sandi kosong untuk pengguna root MySQL.¬†Segera setelah Anda berhasil menginstal database dan klien, Anda perlu mengatur kata sandi root sebagai berikut –

[root@host]# mysqladmin -u root password “new_password”;

Sekarang untuk membuat koneksi ke server MySQL Anda, Anda harus menggunakan perintah berikut –

[root@host]# mysql -u root -p

Enter password:*******

Pengguna UNIX juga ingin meletakkan direktori MySQL Anda di PATH, jadi Anda tidak perlu terus mengetikkan jalur lengkap setiap kali Anda ingin menggunakan klien baris perintah.¬†Untuk pesta, itu akan menjadi seperti –

export PATH = $PATH:/usr/bin:/usr/sbin

Menjalankan MySQL saat boot

Jika Anda ingin menjalankan server MySQL saat boot, pastikan Anda telah mengikuti entri di file /etc/rc.local.

/etc/init.d/mysqld start

Juga, Anda harus memiliki biner mysqld di direktori /etc/init.d/.

MySQLi – Administrasi

Menjalankan dan Mematikan Server MySQL

Pertama, periksa apakah server MySQL Anda berjalan atau tidak.¬†Anda dapat menggunakan perintah berikut untuk memeriksanya –

ps -ef | grep mysqld

Jika MySql Anda berjalan, maka Anda akan melihat¬†proses¬†mysqld¬†terdaftar di hasil Anda.¬†Jika server tidak berjalan, Anda dapat memulainya dengan menggunakan perintah berikut –

root@host# cd /usr/bin

./safe_mysqld &

Sekarang, jika Anda ingin mematikan server MySQL yang sudah berjalan, Anda dapat melakukannya dengan menggunakan perintah berikut –

root@host# cd /usr/bin

./mysqladmin -u root -p shutdown

Enter password: ******

Menyiapkan Akun Pengguna MySQL

Untuk menambahkan pengguna baru ke MySQL, Anda hanya perlu menambahkan entri baru ke tabel pengguna di database mysql .

Program berikut adalah contoh penambahan¬†tamu¬†pengguna baru¬†dengan hak istimewa SELECT, INSERT dan UPDATE dengan password¬†guest123;¬†kueri SQL adalah –

root@host# mysql -u root -p

Enter password:*******

mysql> use mysql;

Database changed

mysql> INSERT INTO user

(host, user, password,

select_priv, insert_priv, update_priv)

VALUES (‘localhost’, ‘guest’,

PASSWORD(‘guest123’), ‘Y’, ‘Y’, ‘Y’);

Query OK, 1 row affected (0.20 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 1 row affected (0.01 sec)

mysql> SELECT host, user, password FROM user WHERE user = ‘guest’;

+———–+———+——————+

| host | user | password |

+———–+———+——————+

| localhost | guest | 6f8c114b58f2ce9e |

+———–+———+——————+

1 row in set (0.00 sec)

Saat menambahkan pengguna baru, ingatlah untuk mengenkripsi kata sandi baru menggunakan fungsi PASSWORD () yang disediakan oleh MySQL. Seperti yang Anda lihat pada contoh di atas, sandi mypass dienkripsi ke 6f8c114b58f2ce9e.

Perhatikan pernyataan FLUSH PRIVILEGES. Ini memberi tahu server untuk memuat ulang tabel hibah. Jika Anda tidak menggunakannya, maka Anda tidak akan dapat terhubung ke MySQL menggunakan akun pengguna baru setidaknya sampai server di-boot ulang.

Anda juga dapat menentukan hak istimewa lain untuk pengguna baru dengan menyetel nilai kolom berikut di tabel pengguna ke ‘Y’ saat menjalankan kueri INSERT atau Anda dapat memperbaruinya nanti menggunakan kueri UPDATE.

  • Select_priv
  • Sisipkan_priv
  • Update_priv
  • Delete_priv
  • Create_priv
  • Drop_priv
  • Reload_priv
  • Shutdown_priv
  • Process_priv
  • File_priv
  • Grant_priv
  • Referensi_priv
  • Index_priv
  • Age_priv

Cara lain untuk menambahkan akun pengguna adalah dengan menggunakan perintah GRANT SQL. Contoh berikut akan menambahkan pengguna zara dengan kata sandi zara123 untuk database tertentu, yang dinamakan TUTORIALS .

root@host# mysql -u root -p password;

Enter password:*******

mysql> use mysql;

Database changed

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

‚Üí ON TUTORIALS.*

‚Üí TO ‘zara’@’localhost’

‚Üí IDENTIFIED BY ‘zara123’;

Ini juga akan membuat entri di tabel database MySQL yang disebut sebagai pengguna .

CATATAN РMySQL tidak menghentikan perintah sampai Anda memberikan titik koma (;) di akhir perintah SQL.

Konfigurasi File /etc/my.cnf

Dalam kebanyakan kasus, Anda tidak boleh menyentuh file ini.¬†Secara default, ini akan memiliki entri berikut –

[mysqld]

datadir = /var/lib/mysql

socket = /var/lib/mysql/mysql.sock

[mysql.server]

user = mysql

basedir = /var/lib

[safe_mysqld]

err-log = /var/log/mysqld.log

pid-file = /var/run/mysqld/mysqld.pid

Di sini, Anda dapat menentukan direktori lain untuk log kesalahan, jika tidak, Anda tidak boleh mengubah entri apa pun dalam tabel ini.

Perintah MySQL Administratif

Berikut adalah daftar perintah MySQL penting, yang akan Anda gunakan dari waktu ke waktu untuk bekerja dengan database MySQL –

  • GUNAKAN Nama Data¬†– Ini akan digunakan untuk memilih database di area kerja MySQL.
  • SHOW DATABASES¬†– Mencantumkan database yang dapat diakses oleh DBMS MySQL.
  • SHOW TABLES¬†– Menampilkan tabel dalam database setelah database dipilih dengan perintah use.
  • SHOW COLUMNS FROM¬†tablename:¬†Menunjukkan atribut, jenis atribut, informasi kunci, apakah NULL diizinkan, default, dan informasi lain untuk tabel.
  • SHOW INDEX FROM tablename¬†– Menampilkan detail semua indeks di atas tabel, termasuk PRIMARY KEY.
  • SHOW TABLE STATUS LIKE tablename \ G¬†– Laporan detail performa dan statistik MySQL DBMS.

MySQLi – Jenis Data

Mendefinisikan field dengan benar dalam tabel penting untuk pengoptimalan keseluruhan database Anda. Anda harus menggunakan hanya jenis dan ukuran bidang yang benar-benar perlu Anda gunakan; jangan tentukan bidang dengan lebar 10 karakter jika Anda tahu Anda hanya akan menggunakan 2 karakter. Jenis bidang (atau kolom) ini juga disebut sebagai tipe data, setelah jenis data yang akan Anda simpan di bidang tersebut.

MySQL menggunakan banyak tipe data berbeda yang dibagi menjadi tiga kategori: numerik, tanggal dan waktu, dan tipe string.

Tipe Data Numerik

MySQL menggunakan semua tipe data numerik ANSI SQL standar, jadi jika Anda menggunakan MySQL dari sistem database yang berbeda, definisi ini akan terlihat familier bagi Anda.¬†Daftar berikut memperlihatkan tipe data numerik umum dan deskripsinya –

  • INT¬†– Integer berukuran normal yang dapat ditandatangani atau tidak.¬†Jika ditandatangani, kisaran yang diizinkan adalah dari -2147483648 hingga 2147483647. Jika tidak ditandatangani, kisaran yang diizinkan adalah dari 0 hingga 4294967295. Anda dapat menentukan lebar hingga 11 digit.
  • TINYINT¬†–¬†Bilangan¬†bulat sangat kecil yang dapat ditandatangani atau tidak.¬†Jika ditandatangani, kisaran yang diizinkan adalah dari -128 hingga 127. Jika tidak ditandatangani, kisaran yang diizinkan adalah dari 0 hingga 255. Anda dapat menentukan lebar hingga 4 digit.
  • SMALLINT¬†–¬†Bilangan¬†bulat kecil yang dapat ditandatangani atau tidak.¬†Jika ditandatangani, kisaran yang diizinkan adalah dari -32768 hingga 32767. Jika tidak ditandatangani, kisaran yang diizinkan adalah dari 0 hingga 65535. Anda dapat menentukan lebar hingga 5 digit.
  • MEDIUMINT¬†– Integer berukuran sedang yang dapat ditandatangani atau tidak.¬†Jika ditandatangani, kisaran yang diizinkan adalah dari -8388608 hingga 8388607. Jika tidak ditandatangani, kisaran yang diizinkan adalah dari 0 hingga 16777215. Anda dapat menentukan lebar hingga 9 digit.
  • BIGINT¬†–¬†Bilangan¬†bulat besar yang dapat ditandatangani atau tidak ditandatangani.¬†Jika ditandatangani, kisaran yang diizinkan adalah dari -9223372036854775808 hingga 9223372036854775807. Jika tidak ditandatangani, kisaran yang diizinkan adalah dari 0 hingga 18446744073709551615. Anda dapat menentukan lebar hingga 20 digit.
  • FLOAT (M, D)¬†– Angka floating-point yang tidak dapat dipisahkan.¬†Anda dapat menentukan panjang tampilan (M) dan jumlah desimal (D).¬†Ini tidak diperlukan dan akan default ke 10,2, di mana 2 adalah jumlah desimal dan 10 adalah jumlah digit (termasuk desimal).¬†Ketepatan desimal bisa mencapai 24 tempat untuk FLOAT.
  • DOUBLE (M, D)¬†– Angka floating-point presisi ganda yang tidak dapat dipisahkan.¬†Anda dapat menentukan panjang tampilan (M) dan jumlah desimal (D).¬†Ini tidak diperlukan dan akan default ke 16,4, di mana 4 adalah jumlah desimal.¬†Ketepatan desimal bisa mencapai 53 tempat untuk GANDA.¬†REAL adalah sinonim dari DOUBLE.
  • DECIMAL (M, D)¬†– Bilangan floating-point yang tidak dapat dipisahkan.¬†Dalam desimal yang tidak dikemas, setiap desimal sesuai dengan satu byte.¬†Menentukan panjang tampilan (M) dan jumlah desimal (D) diperlukan.¬†NUMERIC adalah sinonim dari DECIMAL.

Jenis Tanggal dan Waktu

Jenis data tanggal dan waktu MySQL adalah –

  • TANGGAL¬†– Tanggal dalam format YYYY-MM-DD, antara 1000-01-01 dan 9999-12-31.¬†Misalnya, 30 Desember 1973 akan disimpan pada 1973-12-30.
  • DATETIME¬†– Kombinasi tanggal dan waktu dalam YYYY-MM-DD HH: MM: SS format, antara 1000-01-01 00:00:00 dan 9999-12-31 23:59:59.¬†Misalnya, jam 3:30 sore tanggal 30 Desember 1973 akan disimpan sebagai 1973-12-30 15:30:00.
  • TIMESTAMP¬†– Stempel waktu antara tengah malam, 1 Januari 1970 dan sekitar tahun 2037. Ini terlihat seperti format DATETIME sebelumnya, hanya tanpa tanda hubung di antara angka;¬†3:30 sore tanggal 30 Desember 1973 akan disimpan sebagai 19731230153000 (YYYYMMDDHHMMSS).
  • TIME¬†– Menyimpan waktu dalam format JJ: MM: SS.
  • YEAR (M)¬†– Menyimpan satu tahun dalam format 2 digit atau 4 digit.¬†Jika panjang ditentukan sebagai 2 (misalnya TAHUN (2)), TAHUN dapat dari 1970 hingga 2069 (70 hingga 69).¬†Jika panjang ditentukan sebagai 4, TAHUN dapat menjadi 1901 hingga 2155. Panjang default adalah 4.

Jenis String

Meskipun tipe numerik dan tanggal menyenangkan, sebagian besar data yang akan Anda simpan dalam format string. Daftar ini menjelaskan tipe data string umum di MySQLi.

  • CHAR (M)¬†– String dengan panjang tetap antara 1 dan 255 karakter dengan panjang (misalnya CHAR (5)), dilapisi kanan dengan spasi dengan panjang yang ditentukan saat disimpan.¬†Menentukan panjang tidak diperlukan, tetapi defaultnya adalah 1.
  • VARCHAR (M)¬†– String dengan panjang variabel antara 1 dan 255 karakter;¬†misalnya VARCHAR (25).¬†Anda harus menentukan panjang saat membuat bidang VARCHAR.
  • BLOB atau TEXT¬†– Bidang dengan panjang maksimum 65535 karakter.¬†BLOB adalah “Objek Besar Biner” dan digunakan untuk menyimpan data biner dalam jumlah besar, seperti gambar atau jenis file lainnya.¬†Bidang yang didefinisikan sebagai TEXT juga menyimpan data dalam jumlah besar;¬†perbedaan antara keduanya adalah pengurutan dan perbandingan pada data yang disimpan peka huruf besar kecil di BLOB dan tidak peka huruf besar kecil di bidang TEXT.¬†Anda tidak menentukan panjang dengan BLOB atau TEXT.
  • TINYBLOB atau TINYTEXT¬†–¬†Kolom¬†BLOB atau TEXT dengan panjang maksimal 255 karakter.¬†Anda tidak menentukan panjang dengan TINYBLOB atau TINYTEXT.
  • MEDIUMBLOB atau MEDIUMTEXT¬†– Kolom BLOB atau TEXT dengan panjang maksimum 16777215 karakter.¬†Anda tidak menentukan panjang dengan MEDIUMBLOB atau MEDIUMTEXT.
  • LONGBLOB atau LONGTEXT¬†– Kolom BLOB atau TEXT dengan panjang maksimum 4294967295 karakter.¬†Anda tidak menentukan panjang dengan LONGBLOB atau LONGTEXT.
  • ENUM¬†– Enumerasi, yang merupakan istilah keren untuk daftar.¬†Saat menentukan ENUM, Anda membuat daftar item yang nilainya harus dipilih (atau bisa juga NULL).¬†Misalnya, jika Anda ingin bidang Anda berisi “A” atau “B” atau “C”, Anda harus menetapkan ENUM sebagai ENUM (‘A’, ‘B’, ‘C’) dan hanya nilai tersebut (atau NULL) bisa mengisi bidang itu.

MySQLi – Regexps

Anda telah melihat pola MySQL yang cocok dengan¬†LIKE …%¬†.¬†MySQL mendukung jenis operasi pencocokan pola lain berdasarkan ekspresi reguler dan¬†operator¬†REGEXP¬†.¬†Jika Anda mengetahui PHP atau PERL, maka sangat mudah bagi Anda untuk memahaminya karena pencocokan ini sangat mirip dengan ekspresi reguler skrip tersebut.

Berikut adalah tabel pola yang dapat digunakan bersama dengan operator REGEXP .

Pola Apa polanya cocok
^ Awal string
$ Akhir string
. Karakter tunggal apa pun
[…] Karakter apa pun yang terdaftar di antara tanda kurung siku
[^ …] Karakter apa pun yang tidak terdaftar di antara tanda kurung siku
p1 | p2 | p3 Alternasi; cocok dengan salah satu pola p1, p2, atau p3
* Nol atau lebih contoh elemen sebelumnya
+ Satu atau lebih contoh elemen sebelumnya
{n} n contoh elemen sebelumnya
{M N} m melalui n contoh elemen sebelumnya

Contoh

Sekarang berdasarkan tabel di atas, Anda dapat menggunakan berbagai jenis kueri SQL untuk memenuhi kebutuhan Anda.¬†Di sini, saya mencantumkan beberapa untuk pengertian Anda.¬†Pertimbangkan kami memiliki tabel bernama tutorials_inf dan itu memiliki bidang bernama nama –

Query untuk menemukan semua nama yang dimulai dengan ‘sa’

mysql> SELECT * FROM tutorials_inf WHERE name REGEXP ‘^sa’;

Output sampel harus seperti ini –

+—-+——+

| id | name |

+—-+——+

| 1 | sai |

+—-+——+

1 row in set (0.00 sec)

Query untuk menemukan semua nama yang diakhiri dengan ‘ai’

mysql> SELECT * FROM tutorials_inf WHERE name REGEXP ‘ai$’;

Output sampel harus seperti ini –

+—-+——+

| id | name |

+—-+——+

| 1 | sai |

+—-+——+

1 row in set (0.00 sec)

Query untuk menemukan semua nama, yang mengandung ‘a’

mysql> SELECT * FROM tutorials_inf WHERE name REGEXP ‘a’;

Output sampel harus seperti ini –

+—-+——-+

| id | name |

+—-+——-+

| 1 | sai |

| 3 | ram |

| 4 | johar |

+—-+——-+

3 rows in set (0.00 sec)

Query untuk menemukan semua nama yang diawali dengan huruf vokal

mysql> SELECT * FROM tutorials_inf WHERE name REGEXP ‘^[aeiou]’;

MySQLi – Transaksi

Transaksi adalah grup operasi manipulasi database yang berurutan, yang dilakukan seolah-olah itu adalah satu unit kerja tunggal. Dengan kata lain, transaksi tidak akan pernah selesai kecuali setiap operasi individu dalam grup berhasil. Jika ada operasi dalam transaksi yang gagal, seluruh transaksi akan gagal.

Praktisnya, Anda akan menggabungkan banyak kueri SQL ke dalam grup dan Anda akan mengeksekusi semuanya bersama sebagai bagian dari transaksi.

Sifat Transaksi

Transaksi memiliki empat sifat standar berikut, biasanya disebut dengan singkatan ACID –

  • Atomicity¬†– memastikan bahwa semua operasi dalam unit kerja diselesaikan dengan sukses;¬†jika tidak, transaksi dibatalkan pada titik kegagalan dan operasi sebelumnya digulung kembali ke keadaan semula.
  • Konsistensi¬†– memastikan bahwa database dengan benar mengubah status pada transaksi yang berhasil dilakukan.
  • Isolasi¬†– memungkinkan transaksi untuk beroperasi secara independen dan transparan satu sama lain.
  • Daya tahan¬†– memastikan bahwa hasil atau efek dari transaksi yang dilakukan tetap ada jika terjadi kegagalan sistem.

Di MySQL, transaksi dimulai dengan pernyataan BEGIN WORK dan diakhiri dengan pernyataan COMMIT atau ROLLBACK. Perintah SQLi antara pernyataan awal dan akhir membentuk sebagian besar transaksi.

COMMIT dan ROLLBACK

Kedua kata kunci Komit dan Kembalikan ini terutama digunakan untuk Transaksi MySQL.

  • Ketika transaksi yang berhasil diselesaikan, perintah COMMIT harus dikeluarkan sehingga perubahan pada semua tabel yang terlibat akan diterapkan.
  • Jika terjadi kegagalan, perintah ROLLBACK harus dikeluarkan untuk mengembalikan setiap tabel yang direferensikan dalam transaksi ke status sebelumnya.

Anda dapat mengontrol perilaku transaksi dengan mengatur variabel sesi yang disebut AUTOCOMMIT . Jika AUTOCOMMIT diatur ke 1 (default), maka setiap pernyataan SQL (dalam transaksi atau tidak) dianggap sebagai transaksi lengkap dan dilakukan secara default saat selesai. Ketika AUTOCOMMIT diatur ke 0, dengan mengeluarkan perintah SET AUTOCOMMIT = 0, rangkaian pernyataan berikutnya bertindak seperti transaksi dan tidak ada aktivitas yang dilakukan sampai pernyataan COMMIT eksplisit dikeluarkan.

Anda dapat menjalankan perintah SQL ini di PHP dengan menggunakan fungsi mysqli_query () .

Contoh Umum Transaksi

Urutan peristiwa ini tidak bergantung pada bahasa pemrograman yang digunakan; jalur logis dapat dibuat dalam bahasa apa pun yang Anda gunakan untuk membuat aplikasi Anda.

Anda dapat menjalankan perintah SQL ini di PHP dengan menggunakan fungsi mysqli_query () .

  • Mulailah transaksi dengan mengeluarkan perintah SQL¬†MULAI BEKERJA.
  • Keluarkan satu atau lebih perintah SQL seperti SELECT, INSERT, UPDATE atau DELETE.
  • Periksa apakah tidak ada kesalahan dan semuanya sesuai dengan kebutuhan Anda.
  • Jika ada kesalahan, keluarkan perintah ROLLBACK, jika tidak keluarkan perintah COMMIT.

Jenis Tabel Aman-Transaksi di MySQL

Anda tidak dapat menggunakan transaksi secara langsung, Anda bisa tetapi tidak akan aman dan terjamin. Jika Anda berencana untuk menggunakan transaksi dalam pemrograman MySQL Anda, maka Anda perlu membuat tabel Anda dengan cara khusus. Ada banyak jenis tabel yang mendukung transaksi tetapi yang paling populer adalah InnoDB .

Dukungan untuk tabel InnoDB memerlukan parameter kompilasi khusus saat mengompilasi MySQL dari sumber. Jika versi MySQL Anda tidak memiliki dukungan InnoDB, minta Penyedia Layanan Internet Anda untuk membuat versi MySQL dengan dukungan untuk jenis tabel InnoDB atau unduh dan instal distribusi biner MySQL-Max untuk Windows atau Linux / UNIX dan bekerja dengan tipe tabel di lingkungan pengembangan.

Jika instalasi MySQL Anda mendukung tabel InnoDB, cukup tambahkan¬†definisi¬†TYPE = InnoDB¬†ke pernyataan pembuatan tabel.¬†Misalnya, kode berikut membuat tabel InnoDB yang disebut tutorials_innodb –

root@host# mysql -u root -p;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> create table tutorials_innodb

‚Üí (

‚Üí tutorial_author varchar(40) NOT NULL,

‚Üí tutorial_count INT

‚Üí ) TYPE = InnoDB;

Query OK, 0 rows affected (0.02 sec)

Periksa tautan berikut untuk mengetahui lebih banyak tentang –¬†InnoDB

Anda dapat menggunakan jenis tabel lain seperti GEMINI atau BDB , tetapi itu tergantung pada instalasi Anda jika mendukung kedua jenis ini.

MySQLi – Perintah ALTER

Perintah MySQL ALTER sangat berguna ketika Anda ingin mengubah nama tabel, bidang tabel apa pun, atau jika Anda ingin menambah atau menghapus kolom yang ada dalam tabel.

Mari kita mulai dengan membuat tabel bernama tutorials_alter .

root@host# mysql -u root -p password;

Enter password:*******

mysql> use TUTORIALS;

Database changed

mysql> create table tutorials_alter

‚Üí (

‚Üí i INT,

‚Üí c CHAR(1)

‚Üí );

Query OK, 0 rows affected (0.27 sec)

mysql> SHOW COLUMNS FROM tutorials_alter;

+——-+———+——+—–+———+——-+

| Field | Type | Null | Key | Default | Extra |

+——-+———+——+—–+———+——-+

| i | int(11) | YES | | NULL | |

| c | char(1) | YES | | NULL | |

+——-+———+——+—–+———+——-+

2 rows in set (0.02 sec)

Menjatuhkan, Menambah atau Memosisikan Ulang Kolom

Misalkan Anda ingin menjatuhkan kolom¬†i yang ada¬†dari tabel MySQL di atas maka Anda akan menggunakan¬†klausa¬†DROP¬†bersama dengan¬†perintah¬†ALTER¬†sebagai berikut –

mysql> ALTER TABLE tutorials_alter DROP i;

Sebuah DROP tidak akan bekerja jika kolom adalah satu-satunya yang tersisa di meja.

Untuk menambahkan kolom, gunakan ADD dan tentukan definisi kolom.¬†Pernyataan berikut memulihkan¬†kolom¬†i¬†ke tutorials_alter –

mysql> ALTER TABLE tutorials_alter ADD i INT;

Setelah mengeluarkan pernyataan ini, testalter akan berisi dua kolom yang sama seperti saat Anda pertama kali membuat tabel, tetapi tidak akan memiliki struktur yang sama. Itu karena kolom baru ditambahkan ke akhir tabel secara default. Jadi meskipun saya awalnya adalah kolom pertama di mytbl, sekarang ini adalah yang terakhir.

mysql> SHOW COLUMNS FROM tutorials_alter;

+——-+———+——+—–+———+——-+

| Field | Type | Null | Key | Default | Extra |

+——-+———+——+—–+———+——-+

| c | char(1) | YES | | NULL | |

| i | int(11) | YES | | NULL | |

+——-+———+——+—–+———+——-+

2 rows in set (0.01 sec)

Untuk menunjukkan bahwa Anda menginginkan kolom pada posisi tertentu dalam tabel, gunakan FIRST untuk menjadikannya kolom pertama atau SETELAH col_name untuk menunjukkan bahwa kolom baru harus ditempatkan setelah col_name.¬†Coba pernyataan ALTER TABLE berikut, menggunakan TAMPILKAN KOLOM setelah masing-masing untuk melihat apa efek masing-masing –

ALTER TABLE testalter_tbl DROP i;

ALTER TABLE testalter_tbl ADD i INT FIRST;

ALTER TABLE testalter_tbl DROP i;

ALTER TABLE testalter_tbl ADD i INT AFTER c;

Penentu FIRST dan AFTER hanya bekerja dengan klausa ADD. Ini berarti bahwa jika Anda ingin memposisikan ulang kolom yang ada di dalam tabel, Anda harus DROP terlebih dahulu lalu TAMBAH di posisi baru.

Mengubah Definisi atau Nama Kolom

Untuk mengubah definisi kolom, gunakan¬†klausa¬†MODIFY¬†atau¬†CHANGE¬†bersama dengan perintah ALTER.¬†Misalnya, untuk mengubah kolom¬†c¬†dari CHAR (1) menjadi CHAR (10), lakukan ini –

mysql> ALTER TABLE tutorials_alter MODIFY c CHAR(10);

Dengan CHANGE, sintaksnya sedikit berbeda. Setelah kata kunci CHANGE, Anda memberi nama kolom yang ingin Anda ubah, lalu tentukan definisi baru, yang menyertakan nama baru. Coba contoh berikut:

mysql> ALTER TABLE tutorials_alter CHANGE i j BIGINT;

Jika Anda sekarang menggunakan CHANGE untuk mengubah j dari BIGINT kembali ke INT tanpa mengubah nama kolom, pernyataannya akan seperti yang diharapkan –

mysql> ALTER TABLE tutorials_alter CHANGE j j INT;

Pengaruh ALTER TABLE pada Atribut Nilai Null dan Default –

Saat Anda MENGUBAH atau MENGUBAH kolom, Anda juga dapat menentukan apakah kolom dapat berisi nilai NULL dan nilai defaultnya. Faktanya, jika Anda tidak melakukan ini, MySQL secara otomatis memberikan nilai untuk atribut ini.

Berikut adalah contoh, di mana kolom NOT NULL akan memiliki nilai 100 secara default.

mysql> ALTER TABLE tutorials_alter

‚Üí MODIFY j BIGINT NOT NULL DEFAULT 100;

Jika Anda tidak menggunakan perintah di atas, maka MySQL akan mengisi nilai NULL di semua kolom.

Mengubah Nilai Default Kolom

Anda dapat mengubah nilai default untuk setiap kolom menggunakan perintah ALTER. Coba contoh berikut.

mysql> ALTER TABLE tutorials_alter ALTER j SET DEFAULT 1000;

mysql> SHOW COLUMNS FROM tutorials_alter;

+——-+————+——+—–+———+——-+

| Field | Type | Null | Key | Default | Extra |

+——-+————+——+—–+———+——-+

| c | char(10) | YES | | NULL | |

| j | bigint(20) | NO | | 1000 | |

+——-+————+——+—–+———+——-+

2 rows in set (0.02 sec)

Anda dapat menghapus batasan default dari kolom mana pun dengan menggunakan klausa DROP bersama dengan perintah ALTER.

mysql> ALTER TABLE tutorials_alter ALTER j DROP DEFAULT;

mysql> SHOW COLUMNS FROM tutorials_alter;

+——-+————+——+—–+———+——-+

| Field | Type | Null | Key | Default | Extra |

+——-+————+——+—–+———+——-+

| c | char(10) | YES | | NULL | |

| j | bigint(20) | NO | | NULL | |

+——-+————+——+—–+———+——-+

2 rows in set (0.02 sec)

Mengubah Jenis Tabel

Anda dapat menggunakan tipe tabel dengan menggunakan klausa TYPE bersama dengan perintah ALTER.

Untuk mengetahui tipe tabel saat ini, gunakan pernyataan SHOW TABLE STATUS.

mysql> SHOW TABLE STATUS LIKE ‘tutorials_alter’\G

*************************** 1. row ***************************

Name: tutorials_alter

Engine: InnoDB

Version: 10

Row_format: Compact

Rows: 0

Avg_row_length: 0

Data_length: 16384

Max_data_length: 0

Index_length: 0

Data_free: 0

Auto_increment: NULL

Create_time: 2017-02-17 11:30:29

Update_time: NULL

Check_time: NULL

Collation: latin1_swedish_ci

Checksum: NULL

Create_options:

Comment:

1 row in set (0.00 sec)

Mengganti Nama Tabel

Untuk mengganti nama tabel, gunakan opsi RENAME dari pernyataan ALTER TABLE. Coba contoh berikut untuk mengganti nama tutorials_alter menjadi tutorials_bks.

mysql> ALTER TABLE tutorials_alter RENAME TO tutorials_bks;

Anda dapat menggunakan perintah ALTER untuk membuat dan meletakkan INDEX pada file MySQL. Kita akan melihat fitur ini di bab selanjutnya.

MySQLi – Indeks

Indeks database adalah struktur data yang meningkatkan kecepatan operasi dalam tabel. Indeks dapat dibuat menggunakan satu atau beberapa kolom, memberikan dasar untuk pencarian acak cepat dan pengurutan akses yang efisien ke rekaman.

Saat membuat indeks, harus diperhatikan bahwa kolom apa saja yang akan digunakan untuk membuat kueri SQL dan membuat satu atau lebih indeks pada kolom tersebut.

Secara praktis, indeks juga merupakan tipe tabel, yang menyimpan kunci utama atau bidang indeks dan penunjuk ke setiap rekaman ke dalam tabel aktual.

Pengguna tidak dapat melihat indeks, mereka hanya digunakan untuk mempercepat kueri dan akan digunakan oleh Mesin Pencari Database untuk menemukan catatan dengan sangat cepat.

Pernyataan INSERT dan UPDATE membutuhkan lebih banyak waktu pada tabel yang memiliki indeks dimana pernyataan SELECT menjadi cepat pada tabel tersebut. Alasannya adalah saat melakukan penyisipan atau pembaruan, database perlu memasukkan atau memperbarui nilai indeks juga.

Indeks Sederhana dan Unik

Anda dapat membuat indeks unik di atas tabel. Indeks unik berarti bahwa dua baris tidak boleh memiliki nilai indeks yang sama. Berikut ini sintaks untuk membuat Index di atas tabel.

CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,…);

Anda dapat menggunakan satu atau beberapa kolom untuk membuat indeks. Misalnya, kita dapat membuat indeks di tutorials_inf menggunakan NAME_INDEX.

CREATE UNIQUE INDEX NAME_INDEX ON tutorials_inf(name);

Anda dapat membuat indeks sederhana di atas tabel. Hapus saja kata kunci UNIK dari kueri untuk membuat indeks sederhana. Indeks sederhana memungkinkan nilai duplikat dalam sebuah tabel.

Jika Anda ingin mengindeks nilai dalam kolom dalam urutan menurun, Anda dapat menambahkan kata khusus DESC setelah nama kolom.

mysql> CREATE UNIQUE INDEX NAME_INDEX ON tutorials_inf (name DESC);

ALTER perintah untuk menambah dan melepaskan INDEX

Ada empat jenis pernyataan untuk menambahkan indeks ke tabel –

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list)¬†– Pernyataan ini menambahkan PRIMARY KEY, yang berarti bahwa nilai yang diindeks harus unik dan tidak boleh NULL.
  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list)¬†– Pernyataan ini membuat indeks yang nilainya harus unik (dengan pengecualian nilai NULL, yang mungkin muncul beberapa kali).
  • ALTER TABLE tbl_name ADD INDEX index_name (column_list)¬†– Ini menambahkan indeks biasa di mana nilai apa pun dapat muncul lebih dari sekali.
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list)¬†– Ini membuat indeks FULLTEXT khusus yang digunakan untuk tujuan pencarian teks.

Berikut adalah contoh untuk menambahkan indeks pada tabel yang sudah ada.

mysql> ALTER TABLE tutorials_inf ADD INDEX (id);

Anda dapat menjatuhkan INDEX apa pun dengan menggunakan klausa DROP bersama dengan perintah ALTER. Coba contoh berikut untuk menjatuhkan indeks yang dibuat di atas.

mysql> ALTER TABLE tutorials_inf DROP INDEX (c);

Anda dapat menjatuhkan INDEX apa pun dengan menggunakan klausa DROP bersama dengan perintah ALTER. Coba contoh berikut untuk menjatuhkan indeks yang dibuat di atas.

ALTER Perintah untuk menambah dan melepas PRIMARY KEY

Anda juga dapat menambahkan kunci utama dengan cara yang sama. Tetapi pastikan Kunci Utama berfungsi pada kolom, yang BUKAN NIHIL.

Berikut adalah contoh untuk menambahkan kunci utama pada tabel yang sudah ada. Ini akan membuat kolom NOT NULL terlebih dahulu dan kemudian menambahkannya sebagai kunci utama.

mysql> ALTER TABLE tutorials_inf MODIFY id INT NOT NULL;

mysql> ALTER TABLE tutorials_inf ADD PRIMARY KEY (id);

Anda dapat menggunakan perintah ALTER untuk melepaskan kunci utama sebagai berikut:

mysql> ALTER TABLE tutorials_inf DROP PRIMARY KEY;

Untuk menghapus indeks yang bukan PRIMARY KEY, Anda harus menentukan nama indeks.

Menampilkan Informasi INDEX

Anda dapat menggunakan perintah SHOW INDEX untuk membuat daftar semua indeks yang terkait dengan tabel.¬†Output format vertikal (ditentukan oleh \ G) sering berguna dengan pernyataan ini, untuk menghindari garis batas panjang –

Coba contoh berikut

mysql> SHOW INDEX FROM table_name\G

……..

MySQLi – Tabel Sementara

Tabel sementara bisa sangat berguna dalam beberapa kasus untuk menyimpan data sementara. Hal terpenting yang harus diketahui untuk tabel sementara adalah tabel tersebut akan dihapus ketika sesi klien saat ini berakhir.

Seperti yang dinyatakan sebelumnya, tabel sementara hanya akan bertahan selama sesi tersebut aktif. Jika Anda menjalankan kode dalam skrip PHP, tabel sementara akan dihancurkan secara otomatis saat skrip selesai dijalankan. Jika Anda terhubung ke server database MySQL melalui program klien MySQL, tabel sementara akan ada sampai Anda menutup klien atau menghancurkan tabel secara manual.

Contoh

Berikut adalah contoh yang menunjukkan penggunaan tabel sementara. Kode yang sama dapat digunakan dalam skrip PHP menggunakan fungsi mysqli_query () .

mysql> CREATE TEMPORARY TABLE SalesSummary (

‚Üí product_name VARCHAR(50) NOT NULL

‚Üí , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00

‚Üí , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00

‚Üí , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0

‚Üí );

Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO SalesSummary

‚Üí (product_name, total_sales, avg_unit_price, total_units_sold)

‚Üí VALUES

‚Üí (‘cucumber’, 100.25, 90, 2);

mysql> SELECT * FROM SalesSummary;

+————–+————-+—————-+——————+

| product_name | total_sales | avg_unit_price | total_units_sold |

+————–+————-+—————-+——————+

| cucumber | 100.25 | 90.00 | 2 |

+————–+————-+—————-+——————+

1 row in set (0.00 sec)

Ketika Anda mengeluarkan perintah SHOW TABLES, maka tabel sementara Anda tidak akan terdaftar dalam daftar. Sekarang, jika Anda akan keluar dari sesi MySQL dan kemudian Anda akan mengeluarkan perintah PILIH, maka Anda tidak akan menemukan data yang tersedia di database. Bahkan tabel sementara Anda juga tidak akan ada.

Menjatuhkan Tabel Sementara

Secara default, semua tabel sementara dihapus oleh MySQL saat koneksi database Anda diakhiri. Masih jika Anda ingin menghapusnya di antaranya, maka Anda melakukannya dengan mengeluarkan perintah DROP TABLE.

Berikut adalah contoh menjatuhkan tabel sementara –

mysql> DROP TABLE SalesSummary;

mysql> SELECT * FROM SalesSummary;

ERROR 1146: Table ‘TUTORIALS.SalesSummary’ doesn’t exist

MySQLi – Tabel Klon

Mungkin ada situasi ketika Anda membutuhkan salinan tabel yang tepat dan BUAT TABEL … PILIH tidak sesuai dengan tujuan Anda karena salinan harus menyertakan indeks yang sama, nilai default, dan sebagainya.

Anda dapat menangani situasi ini dengan mengikuti langkah-langkah –

  • Gunakan SHOW CREATE TABLE untuk mendapatkan pernyataan CREATE TABLE yang menentukan struktur tabel sumber, indeks, dan semuanya.
  • Ubah pernyataan untuk mengubah nama tabel menjadi tabel klon dan jalankan pernyataan.¬†Dengan cara ini, Anda akan memiliki tabel klon yang tepat.
  • Secara opsional, jika Anda juga ingin konten tabel disalin, keluarkan juga pernyataan INSERT INTO … SELECT.

Contoh

Coba contoh berikut untuk membuat tabel klon untuk tutorials_inf .

Langkah 1

Dapatkan struktur lengkap tentang tabel.

mysql> SHOW CREATE TABLE tutorials_inf \G;

*************************** 1. row ***************************

Table: tutorials_inf

Create Table: CREATE TABLE `tutorials_inf` (

`id` int(11) NOT NULL,

`name` varchar(20) NOT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `AUTHOR_INDEX` (`name`),

UNIQUE KEY `NAME_INDEX` (`name`),

KEY `id` (`id`)

) ENGINE = InnoDB DEFAULT CHARSET = latin1

1 row in set (0.05 sec)

ERROR: No query specified

Langkah 2

Ubah nama tabel ini dan buat tabel lain.

mysql> CREATE TABLE tutorials_clone(

‚Üí id int(11) NOT NULL,

‚Üí name varchar(20) NOT NULL,

‚Üí PRIMARY KEY (id),

‚Üí UNIQUE KEY AUTHOR_INDEX (name),

‚Üí UNIQUE KEY NAME_INDEX (name),

‚Üí KEY id (id));

Query OK, 0 rows affected (1.80 sec)

LANGKAH 3

Setelah menjalankan langkah 2, Anda akan membuat tabel klon di database Anda.¬†Jika Anda ingin menyalin data dari tabel lama maka Anda dapat melakukannya dengan menggunakan pernyataan INSERT INTO … SELECT.

mysql> INSERT INTO tutorials_clone(id,name) SELECT id,name from tutorials_inf;

Query OK, 4 rows affected (0.19 sec)

Records: 4 Duplicates: 0 Warnings: 0

Akhirnya, Anda akan memiliki tabel klon yang tepat seperti yang Anda inginkan.

MySQLi – Menggunakan Urutan

Urutan adalah himpunan bilangan bulat 1, 2, 3, … yang dibuat sesuai permintaan.¬†Urutan sering digunakan dalam database karena banyak aplikasi mengharuskan setiap baris dalam tabel berisi nilai unik dan urutan menyediakan cara mudah untuk membuatnya.¬†Bab ini menjelaskan cara menggunakan urutan di MySQL.

Menggunakan kolom AUTO_INCREMENT

Cara termudah di MySQL untuk menggunakan Urutan adalah dengan mendefinisikan kolom sebagai AUTO_INCREMENT dan menyerahkan hal-hal lainnya ke MySQL untuk diurus.

Contoh

Coba contoh berikut. Ini akan membuat tabel dan setelah itu akan menyisipkan beberapa baris di tabel ini di mana tidak perlu memberikan ID catatan karena itu bertambah otomatis oleh MySQL.

mysql>CREATE TABLE tutorials_auto(

id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(30) NOT NULL,PRIMARY KEY(id));

Query OK, 0 rows affected (0.28 sec)

mysql>INSERT INTO tutorials_auto(id,name) VALUES(NULL,’sai’),(NULL,’ram’);

Query OK, 2 rows affected (0.12 sec)

Records: 2 Duplicates: 0 Warnings: 0

mysql> SELECT * FROM insect ORDER BY id;

+—-+——+

| id | name |

+—-+——+

| 1 | sai |

| 2 | ram |

+—-+——+

2 rows in set (0.05 sec)

Dapatkan Nilai AUTO_INCREMENT

LAST_INSERT_ID () adalah fungsi SQL, sehingga Anda dapat menggunakannya dari dalam klien mana pun yang memahami cara mengeluarkan pernyataan SQL. Jika tidak, PERL dan skrip PHP menyediakan fungsi eksklusif untuk mengambil nilai auto increment dari catatan terakhir.

Contoh PERL

Gunakan atribut mysql_insertid untuk mendapatkan nilai AUTO_INCREMENT yang dihasilkan oleh kueri. Atribut ini diakses melalui pegangan database atau pegangan pernyataan, tergantung pada bagaimana Anda mengeluarkan kueri. Contoh berikut mereferensikannya melalui pegangan database:

$dbh‚Üído (“INSERT INTO tutorials_auto (name,date,origin)

VALUES(‘moth’,’2001-09-14′,’windowsill’)”);

my $seq = $dbh‚Üí{mysqli_insertid};

Contoh PHP

Setelah mengeluarkan kueri yang menghasilkan nilai AUTO_INCREMENT, ambil nilai dengan memanggil mysql_insert_id () –

mysql_query (“INSERT INTO tutorials_auto (name,date,origin)

VALUES(‘moth’,’2001-09-14′,’windowsill’)”, $conn_id);

$seq = mysqli_insert_id ($conn_id);

Penomoran Ulang Urutan yang Ada

Mungkin ada kasus ketika Anda telah menghapus banyak rekaman dari tabel dan Anda ingin mengatur ulang semua rekaman. Ini dapat dilakukan dengan menggunakan trik sederhana tetapi Anda harus sangat berhati-hati melakukannya jika tabel Anda memiliki sambungan dengan tabel lain.

Jika Anda menentukan bahwa urutan ulang kolom AUTO_INCREMENT tidak dapat dihindari, cara melakukannya adalah dengan melepaskan kolom dari tabel, lalu menambahkannya lagi.¬†Contoh berikut menunjukkan bagaimana menomori ulang nilai id dalam tabel serangga menggunakan teknik ini –

mysql> ALTER TABLE tutorials_auto DROP id;

mysql> ALTER TABLE tutorials_auto

‚Üí ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,

‚Üí ADD PRIMARY KEY (id);

Memulai Urutan pada Nilai Tertentu

Secara default, MySQLi akan memulai urutan dari 1 tetapi Anda juga dapat menentukan nomor lain pada saat pembuatan tabel. Berikut adalah contoh di mana MySQL akan memulai urutan dari 100.

mysql> CREATE TABLE tutorials_auto

‚Üí (

‚Üí id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100,

‚Üí PRIMARY KEY (id),

‚Üí name VARCHAR(30) NOT NULL,

‚Üí );

Alternatifnya, Anda dapat membuat tabel lalu menyetel nilai urutan awal dengan ALTER TABLE.

mysql> ALTER TABLE tutorials_auto AUTO_INCREMENT = 100;

MySQLi – Menangani Duplikat

Tabel atau kumpulan hasil terkadang berisi rekaman duplikat. Terkadang, hal itu diperbolehkan tetapi terkadang diperlukan untuk menghentikan rekaman duplikat. Terkadang, diperlukan untuk mengidentifikasi rekaman duplikat dan menghapusnya dari tabel. Bab ini akan menjelaskan cara mencegah rekaman duplikat terjadi dalam tabel dan cara menghapus rekaman duplikat yang sudah ada.

Mencegah Duplikat Terjadi di Tabel

Anda dapat menggunakan PRIMARY KEY atau UNIQUE Index pada tabel dengan bidang yang sesuai untuk menghentikan rekaman duplikat. Mari kita ambil satu contoh: Tabel berikut tidak berisi indeks atau kunci utama seperti itu, jadi itu akan memungkinkan catatan duplikat untuk nama_pertama dan nama_akhir.

CREATE TABLE person_tbl (

first_name CHAR(20),

last_name CHAR(20),

sex CHAR(10)

);

Untuk mencegah beberapa rekaman dengan nilai nama depan dan belakang yang sama dibuat dalam tabel ini, tambahkan PRIMARY KEY untuk definisinya.¬†Saat Anda melakukan ini, Anda juga perlu mendeklarasikan kolom yang diindeks menjadi NOT NULL, karena PRIMARY KEY tidak mengizinkan nilai NULL –

CREATE TABLE person_tbl (

first_name CHAR(20) NOT NULL,

last_name CHAR(20) NOT NULL,

sex CHAR(10),

PRIMARY KEY (last_name, first_name)

);

Kehadiran indeks unik dalam tabel biasanya menyebabkan kesalahan terjadi jika Anda menyisipkan catatan ke dalam tabel yang menduplikasi catatan yang sudah ada di kolom atau kolom yang menentukan indeks.

Gunakan INSERT IGNORE daripada INSERT . Jika catatan tidak menduplikasi catatan yang sudah ada, MySQL akan memasukkannya seperti biasa. Jika record adalah duplikat, kata kunci IGNORE memberitahu MySQL untuk membuangnya secara diam-diam tanpa menimbulkan kesalahan.

Contoh berikut tidak error dan saat yang sama tidak akan menyisipkan catatan duplikat.

mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)

‚Üí VALUES( ‘Jay’, ‘Thomas’);

Query OK, 1 row affected (0.00 sec)

mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)

‚Üí VALUES( ‘Jay’, ‘Thomas’);

Query OK, 0 rows affected (0.00 sec)

Gunakan¬†REPLACE¬†daripada INSERT.¬†Jika record baru, itu dimasukkan seperti dengan INSERT.¬†Jika itu duplikat, catatan baru menggantikan yang lama –

mysql> REPLACE INTO person_tbl (last_name, first_name)

‚Üí VALUES( ‘Ajay’, ‘Kumar’);

Query OK, 1 row affected (0.00 sec)

mysql> REPLACE INTO person_tbl (last_name, first_name)

‚Üí VALUES( ‘Ajay’, ‘Kumar’);

Query OK, 2 rows affected (0.00 sec)

INSERT IGNORE dan REPLACE harus dipilih sesuai dengan perilaku penanganan duplikat yang ingin Anda lakukan. INSERT IGNORE menyimpan yang pertama dari kumpulan rekaman duplikat dan membuang sisanya. REPLACE menyimpan yang terakhir dari satu set duplikat dan menghapus yang sebelumnya.

Cara lain untuk menerapkan keunikan adalah dengan menambahkan indeks UNIK daripada PRIMARY KEY ke tabel.

CREATE TABLE person_tbl (

first_name CHAR(20) NOT NULL,

last_name CHAR(20) NOT NULL,

sex CHAR(10)

UNIQUE (last_name, first_name)

);

Menghitung dan Mengidentifikasi Duplikat

Berikut adalah query untuk menghitung record duplikat dengan first_name dan last_name dalam sebuah tabel.

mysql> SELECT COUNT(*) as repetitions, last_name, first_name

‚Üí FROM person_tbl

‚Üí GROUP BY last_name, first_name

‚Üí HAVING repetitions > 1;

Kueri ini akan mengembalikan daftar semua rekaman duplikat di tabel person_tbl.¬†Secara umum, untuk mengidentifikasi kumpulan nilai yang diduplikasi, lakukan hal berikut –

  • Tentukan kolom mana yang berisi nilai yang mungkin diduplikasi.
  • Buat daftar kolom tersebut di daftar pilihan kolom, bersama dengan JUMLAH (*).
  • Sebutkan juga kolom-kolom di klausa GROUP BY.
  • Tambahkan klausa HAVING yang menghilangkan nilai unik dengan mengharuskan jumlah grup lebih besar dari satu.

Menghilangkan Duplikat dari Hasil Query:

Anda dapat menggunakan DISTINCT bersama dengan pernyataan SELECT untuk mengetahui catatan unik yang tersedia dalam tabel.

mysql> SELECT DISTINCT last_name, first_name

‚Üí FROM person_tbl

‚Üí ORDER BY last_name;

Alternatif untuk DISTINCT adalah menambahkan klausa GROUP BY yang menamai kolom yang Anda pilih.¬†Ini memiliki efek menghapus duplikat dan memilih hanya kombinasi unik dari nilai di kolom yang ditentukan –

mysql> SELECT last_name, first_name

‚Üí FROM person_tbl

‚Üí GROUP BY (last_name, first_name);

Menghapus Duplikat Menggunakan Penggantian Tabel

Jika Anda memiliki rekaman duplikat dalam sebuah tabel dan Anda ingin menghapus semua rekaman duplikat dari tabel itu, maka berikut adalah prosedurnya –

mysql> CREATE TABLE tmp SELECT last_name, first_name, sex

‚Üí FROM person_tbl;

‚Üí GROUP BY (last_name, first_name);

mysql> DROP TABLE person_tbl;

mysql> ALTER TABLE tmp RENAME TO person_tbl;

Cara mudah untuk menghapus rekaman duplikat dari tabel adalah dengan menambahkan INDEX atau PRIMAY KEY ke tabel itu. Meskipun tabel ini sudah tersedia, Anda dapat menggunakan teknik ini untuk menghapus rekaman duplikat dan Anda juga akan aman di masa mendatang.

mysql> ALTER IGNORE TABLE person_tbl

‚Üí ADD PRIMARY KEY (last_name, first_name);

 

Baca Juga  Belajar Microsoft Excel: Fungsi Sumif Dan Rumus Penjumlahan Bersyarat

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Need Help? Chat with us