PHP MySQLFungsi i: mysqli_query & mysqli_connect

⚡ Ringkasan Cerdas

MySQLMySQLi, PHP, dan metode akses basis data lainnya memungkinkan skrip PHP untuk terhubung ke basis data, menjalankan kueri, dan membaca hasilnya. Panduan ini mencakup fungsi inti mysqli, contoh CRUD lengkap, prepared statement untuk keamanan, dan metode akses alternatif PDO dan ODBC.

  • 🔌 Menghubungkan: mysqli_connect membuka tautan ke MySQL server, dan mysqli_select_db memilih database yang akan digunakan.
  • ️ Menjalankan Kueri: mysqli_query mengeksekusi pernyataan INSERT, SELECT, UPDATE, dan DELETE terhadap basis data yang dipilih.
  • 📄 Hasil Pembacaan: mysqli_num_rows menghitung jumlah baris yang dikembalikan, dan mysqli_fetch_array membaca setiap baris ke dalam array untuk ditampilkan.
  • 🔄 kasar Operation: Jika digabungkan, fungsi-fungsi ini membuat, membaca, memperbarui, dan menghapus data, yaitu empat operasi inti dalam basis data.
  • 🛡️ Pernyataan yang Telah Disiapkan: Mengikat nilai dengan prepared statement mencegah serangan SQL injection, tidak seperti membangun query dengan menggabungkan input pengguna.
  • 🧩 PDO dan ODBC: PDO menawarkan satu antarmuka di berbagai mesin basis data, sementara ODBC terhubung ke sumber seperti Microsoft Mengakses.
  • 🤖 Bantuan AI: Alat AI dapat mengkonversi kode mysqli lama ke PDO dengan prepared statement dan mendebug kesalahan koneksi.

PHP MySQL Akses Database

PHP memiliki banyak sekali fungsi bawaan untuk memanipulasi MySQL database.

Fungsi PHP mysqli_connect

Fungsi PHP mysqli_connect digunakan untuk terhubung ke sebuah MySQL server basis data.

Ia memiliki sintaksis sebagai berikut.

<?php
$db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password);
?>

SINI,

  • “$db_handle” adalah variabel sumber daya koneksi database.
  • “mysqli_connect(…)” adalah fungsi untuk koneksi basis data PHP.
  • “$db_server_name” adalah nama atau alamat IP dari server yang menampung database tersebut. MySQL Server.
  • “$db_user_name” adalah nama pengguna yang valid di MySQL Server.
  • “$db_password” adalah kata sandi yang valid yang terkait dengan nama pengguna di MySQL Server.

Fungsi PHP mysqli_select_db

Fungsi mysqli_select_db digunakan untuk memilih basis data.

Ia memiliki sintaksis sebagai berikut.

<?php
mysqli_select_db($db_handle, $database_name);
?>

SINI,

  • “mysqli_select_db(…)” adalah fungsi pemilihan database yang mengembalikan nilai benar atau salah
  • “$db_handle” adalah tautan koneksi server.
  • “$database_name” adalah nama database

Fungsi PHP mysqli_query

Fungsi mysqli_query digunakan untuk mengeksekusi SQL pertanyaan.

Fungsi ini dapat digunakan untuk mengeksekusi tipe kueri berikut:

  • Menyisipkan
  • Pilih
  • Memperbarui
  • Delete

Ia memiliki sintaksis sebagai berikut.

<?php
mysqli_query($db_handle, $query);
?>

SINI,

  • “mysqli_query(…)” adalah fungsi yang mengeksekusi query SQL.
  • “$db_handle” adalah tautan koneksi server.
  • “$query” adalah kueri SQL yang akan dieksekusi

Fungsi PHP mysqli_num_rows

Fungsi mysqli_num_rows digunakan untuk mendapatkan jumlah baris yang dikembalikan dari kueri pemilihan.

Ia memiliki sintaksis sebagai berikut.

<?php
mysqli_num_rows($result);
?>

SINI,

  • “mysqli_num_rows(…)” adalah fungsi penghitungan baris
  • “$result” adalah kumpulan hasil mysqli_query

Fungsi PHP mysqli_fetch_array

Fungsi mysqli_fetch_array digunakan untuk mengambil array baris dari kumpulan hasil kueri.

Ia memiliki sintaksis sebagai berikut.

<?php
mysqli_fetch_array($result);
?>

SINI,

  • “mysqli_fetch_array(…)” adalah fungsi untuk mengambil array baris
  • “$result” adalah hasil yang dikembalikan oleh fungsi mysqli_query.

Fungsi PHP mysqli_close

Fungsi mysqli_close digunakan untuk menutup koneksi basis data yang terbuka.

Ia memiliki sintaksis sebagai berikut.

<?php
mysqli_close($db_handle);
?>

SINI,

  • “mysqli_close(…)” adalah fungsi PHP yang menutup koneksi.
  • “$db_handle” adalah sumber daya koneksi server.

PHP MySQL Contoh CRUD

Mari kita lihat contoh-contoh praktis yang memanfaatkan fungsi-fungsi ini. Tutorial ini mengasumsikan pengetahuan tentang... MySQL dan SQL; jika istilah-istilah ini asing bagi Anda, silakan merujuk ke panduan kami. MySQL dan tutorial SQL.

Kita akan membuat basis data sederhana bernama my_personal_contacts dengan hanya satu tabel. Hubungkan ke MySQL menggunakan alat akses favorit Anda seperti MySQL Buka Workbench atau phpMyAdmin, buat basis data bernama my_personal_contacts, lalu jalankan skrip yang ditunjukkan di bawah ini untuk membuat tabel dan memasukkan beberapa data contoh.

CREATE TABLE IF NOT EXISTS `my_contacts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`full_names` varchar(255) NOT NULL,
`gender` varchar(6) NOT NULL,
`contact_no` varchar(75) NOT NULL,
`email` varchar(255) NOT NULL,
`city` varchar(255) NOT NULL,
`country` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

INSERT INTO `my_contacts` (`id`, `full_names`, `gender`, `contact_no`, `email`, `city`, `country`) VALUES
(1, 'Zeus', 'Male', '111', 'zeus@olympus.mt.co', 'Agos', 'Greece'),
(2, 'Anthena', 'Female', '123', 'anthena@olympus.mt.co', 'Athens', 'Greece'),
(3, 'Jupiter', 'Male', '783', 'jupiter@planet.pt.co', 'Rome', 'Italy'),
(4, 'Venus', 'Female', '987', 'venus@planet.pt.co', 'Mars', 'Italy');

Membaca data dari basis data

Sekarang kita akan membuat program yang mencetak data dari basis data.

<?php
$dbh = mysqli_connect('localhost', 'root', 'melody'); // connect to MySQL server
if (!$dbh)
    die("Unable to connect to MySQL: " . mysqli_connect_error());

if (!mysqli_select_db($dbh, 'my_personal_contacts'))
    die("Unable to select database: " . mysqli_error($dbh));

$sql_stmt = "SELECT * FROM my_contacts"; // SQL select query
$result = mysqli_query($dbh, $sql_stmt); // execute SQL statement

if (!$result)
    die("Database access failed: " . mysqli_error($dbh));

$rows = mysqli_num_rows($result); // get number of rows returned

if ($rows) {
    while ($row = mysqli_fetch_array($result)) {
        echo 'ID: ' . $row['id'] . '<br>';
        echo 'Full Names: ' . $row['full_names'] . '<br>';
        echo 'Gender: ' . $row['gender'] . '<br>';
        echo 'Contact No: ' . $row['contact_no'] . '<br>';
        echo 'Email: ' . $row['email'] . '<br>';
        echo 'City: ' . $row['city'] . '<br>';
        echo 'Country: ' . $row['country'] . '<br><br>';
    }
}
mysqli_close($dbh); // close the database connection
?>

Menjalankan kode di atas akan menghasilkan hasil seperti yang ditunjukkan pada diagram di bawah ini.

PHP: MySQL Fungsi

Memasukkan catatan baru

Sekarang mari kita lihat contoh yang menambahkan data baru ke dalam tabel kita. Kode di bawah ini menunjukkan implementasinya.

<?php
$dbh = mysqli_connect('localhost', 'root', 'melody'); // connect to MySQL server
if (!$dbh)
    die("Unable to connect to MySQL: " . mysqli_connect_error());

if (!mysqli_select_db($dbh, 'my_personal_contacts'))
    die("Unable to select database: " . mysqli_error($dbh));

$sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)";
$sql_stmt .= " VALUES(7,8,9,10,11,12)";

$result = mysqli_query($dbh, $sql_stmt); // execute SQL statement
if (!$result)
    die("Adding record failed: " . mysqli_error($dbh));

echo "Poseidon has been successfully added to your contacts list";
mysqli_close($dbh); // close the database connection
?>

Menjalankan kode di atas akan menghasilkan output “Poseidon telah berhasil ditambahkan ke daftar kontak Anda”. Kembali ke contoh kueri select dan ambil kontak Anda lagi untuk melihat apakah Poseidon telah ditambahkan ke daftar Anda.

Memperbarui catatan

Sekarang mari kita lihat contoh yang memperbarui data dalam basis data. Misalnya, Poseidon telah mengubah nomor telepon dan alamat emailnya.

<?php
$dbh = mysqli_connect('localhost', 'root', 'melody'); // connect to MySQL server
if (!$dbh)
    die("Unable to connect to MySQL: " . mysqli_connect_error());

if (!mysqli_select_db($dbh, 'my_personal_contacts'))
    die("Unable to select database: " . mysqli_error($dbh));

$sql_stmt = "UPDATE `my_contacts` SET `contact_no` = 8, `email` = 9";
$sql_stmt .= " WHERE `id` = 5"; // SQL update query

$result = mysqli_query($dbh, $sql_stmt); // execute SQL statement
if (!$result)
    die("Updating record failed: " . mysqli_error($dbh));

echo "ID number 5 has been successfully updated";
mysqli_close($dbh); // close the database connection
?>

Menghapus catatan

Sekarang mari kita lihat contoh penghapusan data dari basis data. Misalnya, Venus memiliki perintah penahanan terhadap kita, dan kita harus menghapus informasi kontaknya dari basis data kita. Database.

<?php
$dbh = mysqli_connect('localhost', 'root', 'melody'); // connect to MySQL server
if (!$dbh)
    die("Unable to connect to MySQL: " . mysqli_connect_error());

if (!mysqli_select_db($dbh, 'my_personal_contacts'))
    die("Unable to select database: " . mysqli_error($dbh));

$id = 4; // Venus's ID in the database
$sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id"; // SQL delete query

$result = mysqli_query($dbh, $sql_stmt); // execute SQL statement
if (!$result)
    die("Deleting record failed: " . mysqli_error($dbh));

echo "ID number $id has been successfully deleted";
mysqli_close($dbh); // close the database connection
?>

Mencegah Injeksi SQL dengan Prepared Statements

Contoh CRUD di atas membangun kueri dengan menggabungkan string. Ketika bagian mana pun dari kueri berasal dari input pengguna, ini membuka pintu bagi injeksi SQL. Pernyataan yang dipersiapkan (prepared statements) mengatasi hal ini dengan mengirimkan kueri dan data secara terpisah, sehingga input tidak akan pernah mengubah struktur kueri.

<?php
$dbh = mysqli_connect('localhost', 'root', 'melody');
$stmt = mysqli_prepare($dbh, "INSERT INTO my_contacts (full_names, email) VALUES (?, ?)");
mysqli_stmt_bind_param($stmt, "ss", $name, $email);
$name = 'Poseidon';
$email = 'poseidon@sea.oc';
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
mysqli_close($dbh);
?>

Di sini, tanda tanya hanyalah placeholder, dan bind_param mengikat nilai nama dan email dengan aman. Basis data memperlakukannya sebagai data murni, itulah sebabnya prepared statement, yang tersedia di mysqli dan PDO, adalah cara yang direkomendasikan untuk menjalankan kueri apa pun yang menggunakan input pengguna.

Objek Akses Data PHP (PDO)

PDO adalah kelas yang memungkinkan kita untuk memanipulasi berbagai mesin basis data seperti MySQL, PostgreSQL, dan MS SQL Server menggunakan antarmuka yang sama.

Kode di bawah ini menunjukkan metode akses database menggunakan objek PDO.

Catatan: kode di bawah ini mengasumsikan pengetahuan tentang bahasa SQL, array, penanganan pengecualian, dan perulangan foreach.

<?php
try {
$pdo = new PDO("mysql:host=localhost;dbname=my_personal_contacts", 'root', 'melody');

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');

$sql_stmt = "SELECT * FROM `my_contacts`";
$result = $pdo->query($sql_stmt);
$result->setFetchMode(PDO::FETCH_ASSOC);
$data = array();
foreach ($result as $row) {
$data[] = $row;
}
print_r($data);
}
catch (PDOException $e) {
echo $e->getMessage();
}
?>

SINI,

  • “try{…}catch{…}” adalah blok penanganan pengecualian.
  • “$pdo = new PDO(“mysql…” membuat sebuah instance objek PDO dan meneruskan driver basis data, nama server dan basis data, ID pengguna, dan kata sandi.
  • “$pdo->setAttribute…” mengatur mode kesalahan PDO untuk melempar pengecualian.
  • “$pdo->exec('SET NAMES…” mengatur format pengkodean

Akses Data ODBC PHP

ODBC adalah akronim dari Open Database Connectivity. Sintaks dasarnya adalah sebagai berikut.

<?php
$conn = odbc_connect($dsn, $user_name, $password);
?>

SINI,

  • “odbc_connect” adalah fungsi bawaan PHP.
  • “$dsn” adalah nama sumber data ODBC.
  • “$user_name” bersifat opsional dan digunakan untuk nama pengguna ODBC.
  • “$password” bersifat opsional dan digunakan untuk kata sandi ODBC.

Contoh di bawah ini mengasumsikan Anda menggunakan Windows dan telah membuat tautan ODBC ke Northwind. Microsoft Akses basis data bernama northwind.

<?php
$dbh = odbc_connect('northwind', '', '');
if (!$dbh) {
exit("Connection Failed: " . $dbh);
}
$sql_stmt = "SELECT * FROM customers";
$result = odbc_exec($dbh, $sql_stmt);
if (!$result) {
exit("Error accessing records");
}
while (odbc_fetch_row($result)) {
$company_name = odbc_result($result, "CompanyName");
$contact_name = odbc_result($result, "ContactName");
echo "<b>Company Name (Contact Person):</b> $company_name ($contact_name) <br>";
}
odbc_close($dbh);
?>

Pertanyaan Umum Demo Slot

mysqli hanya berfungsi dengan MySQL dan menawarkan gaya prosedural dan objek. PDO bekerja dengan banyak basis data melalui satu antarmuka dan mendukung placeholder bernama. Keduanya mendukung prepared statement; PDO lebih portabel di berbagai mesin basis data.

Tidak. Ekstensi mysql_* asli telah dihapus di PHP 7. Gunakan mysqli atau PDO sebagai gantinya. Keduanya dikelola secara aktif, mendukung prepared statement, dan melindungi dari risiko injeksi yang disebabkan oleh ekstensi lama.

Tangkap kesalahan dan tampilkan pesan umum kepada pengguna sambil mencatat detailnya secara pribadi. Jangan tampilkan output mysqli_error kepada pengunjung, karena hal itu dapat mengungkapkan nama dan struktur tabel yang berguna bagi penyerang.

Ya. Tempelkan skrip mysqli, dan AI dapat menuliskannya ulang menggunakan PDO, mengganti kueri yang digabungkan dengan parameter terikat, dan menambahkan penanganan kesalahan try-catch. RevLihat placeholder dan uji setiap kueri setelahnya.

Ya. Bagikan pesan kesalahan dan kode koneksi Anda, dan AI dapat mendeteksi kredensial yang salah, host atau port yang bermasalah, basis data yang hilang, atau driver yang dinonaktifkan, lalu menyarankan pengaturan yang benar untuk dicoba.

Ringkaslah postingan ini dengan: