Mengapa kita menggunakan mysqli bukan mysql?

MySQL adalah sistem manajemen basis data open source terkemuka. Ini adalah sistem manajemen database multiuser, multithreaded. MySQL sangat populer di web. Ini adalah salah satu bagian dari platform LAMP yang sangat populer. Linux, Apache, MySQL, dan PHP. Saat ini MySQL dimiliki oleh Oracle. Basis data MySQL tersedia di sebagian besar platform OS penting. Ini berjalan di BSD Unix, Linux, Windows, atau Mac OS

Ekstensi MySQLi (MySQL Improved) adalah driver basis data relasional yang digunakan dalam bahasa skrip PHP untuk menyediakan antarmuka dengan basis data MySQL. Ini menyediakan API berorientasi objek dan prosedural. Cara lain untuk berinteraksi dengan MySQL adalah. Solusi PDO dan ORM

Modul

$con = new mysqli("localhost", "dbuser", "passwd", "mydb");
3 PHP Data Objects adalah lapisan abstraksi basis data untuk aplikasi PHP. Modul ini bermanfaat jika kita menulis skrip PHP database portabel

Ada juga solusi ORM untuk bekerja dengan MySQL di PHP seperti Doctrine atau Eloquent

$ sudo apt install php8.1-mysql
_

Kami memasang modul

$con = new mysqli("localhost", "dbuser", "passwd", "mydb");
_4.
$con = new mysqli("localhost", "dbuser", "passwd", "mydb");
5 dibuat selama instalasi, di mana ekstensi diaktifkan

Dalam contoh berikut, kami menentukan versi database MySQL

connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$res = $con->query("SELECT VERSION()");

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}

$res->close();
$con->close();
_

Contoh mencetak versi MySQL

$con = new mysqli("localhost", "dbuser", "passwd", "mydb");

Koneksi ke database dibuat. Kelas

$con = new mysqli("localhost", "dbuser", "passwd", "mydb");
6 menggunakan nama host, nama pengguna, kata sandi, dan nama basis data sebagai argumen

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$con = new mysqli("localhost", "dbuser", "passwd", "mydb");
7 berisi nilai kode kesalahan jika upaya koneksi gagal. Ini memiliki nol jika tidak ada kesalahan yang terjadi. Metode
$con = new mysqli("localhost", "dbuser", "passwd", "mydb");
8 mengembalikan deskripsi string dari kesalahan sambungan terakhir

$res = $con->query("SELECT VERSION()");

Metode ________0______9 melakukan query pada database. Pernyataan

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
_0 mengembalikan versi MySQL

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
_1 mengembalikan baris hasil sebagai array yang disebutkan. Hasil kami hanya berisi satu nilai

$res->close();
$con->close();

Pada akhirnya, kami melepaskan sumber daya

$ php version.php
8.0.29-0ubuntu0.22.04.2

Ini adalah contoh keluaran

Iklan

Driver

$con = new mysqli("localhost", "dbuser", "passwd", "mydb");
6 juga mendukung gaya pemrograman prosedural

The example returns the version of MySQL with procedural functions.

PHP mysqli create table

The following example creates a new database table. A table is created with the CREATE TABLE statement. Rows are added to the table with the INSERT INTO statements.

query($query);

    if (!$res) {

        echo "failed to execute query: $query\n";
    } else {
        echo "Query: $query executed\n";
    }

    if (is_object($res)) {

        $res->close();
    }
}

$con = new mysqli($host, $user, $passwd, $db);

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$query = "DROP TABLE IF EXISTS cars";
execute_query($query, $con);

$query = "CREATE TABLE cars(id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255), price INT)";
execute_query($query, $con);

$query = "INSERT INTO cars(name, price) VALUES('Audi', 52642)";
execute_query($query, $con);

$query = "INSERT INTO cars(name, price) VALUES('Mercedes', 57127)";
execute_query($query, $con);

$query = "INSERT INTO cars(name, price) VALUES('Skoda', 9000)";
execute_query($query, $con);

$query = "INSERT INTO cars(name, price) VALUES('Volvo', 29000)";
execute_query($query, $con);

$query = "INSERT INTO cars(name, price) VALUES('Bentley', 350000)";
execute_query($query, $con);

$query = "INSERT INTO cars(name, price) VALUES('Citroen', 21000)";
execute_query($query, $con);

$query = "INSERT INTO cars(name, price) VALUES('Hummer', 41400)";
execute_query($query, $con);

$query = "INSERT INTO cars(name, price) VALUES('Volkswagen', 21600)";
execute_query($query, $con);

$con->close();

Contoh membuat tabel

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
_3 dengan delapan baris

Saat kami menulis pernyataan yang disiapkan, kami menggunakan placeholder alih-alih langsung menulis nilai ke dalam pernyataan. Pernyataan yang disiapkan meningkatkan keamanan dan kinerja. Di mysqli, fungsi

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
_4 menyiapkan pernyataan SQL untuk dieksekusi

$ sudo apt install php8.1-mysql
_0

Contoh memilih baris tertentu dari tabel. Ini menggunakan pernyataan yang disiapkan

$ sudo apt install php8.1-mysql
_1

Saat kami menulis pernyataan yang disiapkan, kami menggunakan placeholder alih-alih langsung menulis nilai ke dalam pernyataan. Pernyataan yang disiapkan lebih cepat dan melindungi dari serangan injeksi SQL.

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
_5 adalah placeholder, yang akan diisi nanti. Dalam kasus kami, kami memiliki satu nilai. id bilangan bulat

$ sudo apt install php8.1-mysql
_2

Nilai variabel

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
_6 terikat ke placeholder dengan metode
if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
7. Parameter pertama menentukan tipe variabel;

Iklan
$ sudo apt install php8.1-mysql
_3

Pernyataan dijalankan

$ sudo apt install php8.1-mysql
_4

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
_8 mengikat nilai yang dikembalikan ke variabel yang ditentukan

$ sudo apt install php8.1-mysql
_5

Kami mencetak variabel ke terminal

$ sudo apt install php8.1-mysql
_6

Kami menutup pernyataan itu

$ sudo apt install php8.1-mysql
_7

Ini adalah output

PHP mysqli fetch_row

Metode

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
_1 mengambil satu baris data dari kumpulan hasil dan mengembalikannya sebagai larik enumerasi. Setiap kolom disimpan dalam array offset mulai dari
$res = $con->query("SELECT VERSION()");
0. Setiap panggilan selanjutnya ke fungsi ini akan mengembalikan baris berikutnya dalam kumpulan hasil, atau
$res = $con->query("SELECT VERSION()");
1 jika tidak ada lagi baris

$ sudo apt install php8.1-mysql
_8

Contoh mengembalikan semua baris dari tabel

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
3

$ sudo apt install php8.1-mysql
_9

Kueri SELECT ini memilih semua baris dari tabel

connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$res = $con->query("SELECT VERSION()");

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}

$res->close();
$con->close();
_0

Kami menjalankan kueri SELECT dengan metode ________0______9

connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$res = $con->query("SELECT VERSION()");

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}

$res->close();
$con->close();
_1

Jumlah baris yang dikembalikan disimpan dalam atribut

$res = $con->query("SELECT VERSION()");
4

connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$res = $con->query("SELECT VERSION()");

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}

$res->close();
$con->close();
_2

Dengan

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
_1 dalam perulangan while, kita mengambil semua baris dari tabel

connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$res = $con->query("SELECT VERSION()");

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}

$res->close();
$con->close();
_3

Ini adalah output

Iklan

$res = $con->query("SELECT VERSION()");
_6 mengembalikan array string asosiatif yang mewakili baris yang diambil di set hasil. Setiap kunci dalam larik mewakili nama salah satu kolom kumpulan hasil atau
$res = $con->query("SELECT VERSION()");
1 jika tidak ada

connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$res = $con->query("SELECT VERSION()");

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}

$res->close();
$con->close();
_4

Contoh mengembalikan semua baris dari tabel

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
3

connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$res = $con->query("SELECT VERSION()");

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}

$res->close();
$con->close();
_5

Saat kami menggunakan

$res = $con->query("SELECT VERSION()");
_6, kami merujuk ke kolom melalui notasi array

PHP mysqli fetch_object

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}
_0 mengembalikan objek dengan properti string yang sesuai dengan baris yang diambil atau
$res = $con->query("SELECT VERSION()");
1 jika tidak ada lagi

connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$res = $con->query("SELECT VERSION()");

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}

$res->close();
$con->close();
_6

Contoh mengembalikan semua baris dari tabel

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
3

Iklan
connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$res = $con->query("SELECT VERSION()");

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}

$res->close();
$con->close();
_7

Saat kami menggunakan

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}
_0, kami merujuk ke kolom melalui notasi akses objek

Nama kolom PHP mysqli

Contoh berikutnya mencetak nama kolom dengan data dari tabel database. Kami menyebut nama kolom sebagai data meta

connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$res = $con->query("SELECT VERSION()");

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}

$res->close();
$con->close();
_8

Contoh mencetak semua baris dari tabel

if ($con->connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}
_3 dengan header kolom

connect_errno) {

    printf("connection failed: %s\n", $con->connect_error());
    exit();
}

$res = $con->query("SELECT VERSION()");

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}

$res->close();
$con->close();
_9

Atribut

$res = $con->query("SELECT VERSION()");
_4 mengembalikan jumlah baris dalam hasil.
if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}
_6 mengembalikan jumlah bidang dalam hasil

$con = new mysqli("localhost", "dbuser", "passwd", "mydb");
0

Metode

if ($res) {

    $row = $res->fetch_row();
    echo $row[0];
}
_7 mengembalikan larik objek yang mewakili bidang dalam kumpulan hasil. Ini adalah nama kolom

Apakah MySQLi lebih cepat dari MySQL?

Ekstensi MySQL sedikit lebih cepat daripada MySQLi di sebagian besar tolok ukur yang pernah saya lihat dilaporkan. Perbedaannya sangat kecil, bagaimanapun, ini mungkin bukan kriteria Anda untuk memutuskan di antara keduanya. Faktor lain mengerdilkan perbedaan kinerja antara mysql dan mysqli.

Apa perbedaan antara MySQL dan MySQLi?

Pada dasarnya, MySQL adalah driver basis data lama, dan MySQLi adalah driver yang Ditingkatkan . The "i" adalah singkatan dari "improved" sehingga MySQL ditingkatkan. MySQLi dapat dilakukan secara prosedural dan berorientasi objek sedangkan MySQL hanya dapat digunakan secara prosedural. Mysqli juga mendukung pernyataan siap yang melindungi dari SQL Injection.

Apa tujuan dari MySQLi?

Fungsi MySQLi memungkinkan Anda untuk mengakses server database MySQL . Catatan. Ekstensi MySQLi dirancang untuk bekerja dengan MySQL versi 4. 1. 13 atau lebih baru.

Apa kelebihan MySQLi di PHP?

Keunggulan MySQLi . Beberapa kueri sekaligus (meskipun bisa jika mode emulasi diaktifkan di PDO)Ability to get more info on affected rows, like updating a row with the same values (can be done in PDO as a constructor setting you can't change it later) Proper database closing method. Multiple queries at once (though it can if emulation mode is turned on in PDO)