Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana Menghubungkan PHP ke MySQL

Apakah Anda ingin mempelajari cara menghubungkan PHP ke MySQL dan melakukan berbagai jenis operasi basis data? Pada artikel ini, kita akan melakukannya—kita akan membahas konektivitas database MySQL di PHP.

PHP menyediakan berbagai cara untuk menghubungkan PHP ke server database MySQL. Hingga PHP 5.5, salah satu cara yang paling populer adalah dengan ekstensi MySQL—ekstensi ini menyediakan cara "prosedural" untuk terhubung ke server MySQL. Namun, ekstensi ini tidak digunakan lagi pada PHP 5.5, jadi kami tidak akan membahasnya.

Saat ini, dua pilihan Anda adalah PDO dan MySQLi.

Ekstensi PDO (PHP Data Objects) mendukung berbagai jenis server basis data yang mendasarinya bersama dengan server MySQL. Dan dengan demikian, ini portabel jika Anda memutuskan untuk menukar server basis data yang mendasarinya kapan saja di masa mendatang.

Di sisi lain, ekstensi MySQLi khusus untuk server MySQL dan memberikan kecepatan dan kinerja yang lebih baik. Ekstensi MySQLi mungkin juga sedikit lebih mudah dipahami pada awalnya, karena memungkinkan Anda menulis kueri SQL secara langsung. Jika Anda pernah bekerja dengan database SQL sebelumnya, ini akan sangat familiar. Namun, ekstensi PDO membuat pemetaan yang kuat dari database SQL ke kode PHP Anda dan memungkinkan Anda melakukan banyak operasi database tanpa perlu mengetahui detail SQL atau database. Dalam jangka panjang dan untuk proyek yang lebih besar, ini dapat menghemat banyak upaya pengkodean dan debugging.

Dalam posting ini, saya akan menggunakan ekstensi MySQLi. Tetapi Anda dapat mempelajari lebih lanjut tentang ekstensi PDO di sini di Envato Tuts+.

  • PHPCepat Bangun Antarmuka PHP CRUD Dengan Alat Generator CRUD Lanjutan PDOSajal Soni

Kami akan membahas topik berikut dalam artikel ini:

  • membuat koneksi MySQL
  • menyisipkan, memperbarui, dan menghapus catatan
  • mengambil catatan

Skrip Database PHP Terbaik di CodeCanyon

Dalam posting ini, saya akan menunjukkan cara membuat koneksi bare-metal ke database MySQL dari PHP. Ini adalah keterampilan yang penting untuk dimiliki, tetapi jika Anda ingin menghemat waktu pada proyek Anda berikutnya, Anda mungkin ingin meningkatkan ke skrip database profesional. Ini akan menghemat waktu dan membuat pekerjaan Anda lebih mudah.

Jelajahi skrip database PHP terbaik dan paling berguna yang pernah dibuat di CodeCanyon. Dengan pembayaran satu kali yang murah, Anda dapat membeli tema WordPress berkualitas tinggi ini dan meningkatkan pengalaman situs web Anda untuk Anda dan pengunjung Anda.

Berikut adalah beberapa skrip database PHP terbaik yang tersedia di CodeCanyon untuk tahun 2020.

  • PHPMembandingkan Layer Abstraksi Database PHP dan Plugin CRUD Sajal Soni

Buat Koneksi MySQL

Di bagian ini, saya akan menunjukkan kepada Anda bagaimana Anda dapat terhubung ke server MySQL dari skrip PHP Anda dan membuat objek koneksi. Nantinya, objek koneksi ini akan digunakan untuk menjalankan kueri, mengambil output, dan memanipulasi catatan database. Seperti yang telah kita bahas sebelumnya, kita akan menggunakan ekstensi PHP MySQLi untuk artikel ini.

Ekstensi MySQLi menyediakan dua cara berbeda untuk melakukan operasi database. Anda dapat menggunakannya dengan cara berorientasi objek atau cara prosedural, tetapi karena tutorial ini ditujukan untuk pemula, saya akan tetap menggunakan cara prosedural. Jika Anda tertarik untuk melihat beberapa cuplikan berorientasi objek, Anda dapat melakukan ping kepada saya di bagian komentar di bawah dan saya akan dengan senang hati memberikannya.

Untuk memulai, lanjutkan dan buat db_connect.php file di bawah root dokumen Anda dengan konten berikut.

<?php
$mysqli_link = mysqli_connect("{HOST_NAME}", "{DATABASE_USERNAME}", "{DATABASE_PASSWORD}", "{DATABASE_NAME}");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

Perhatikan bahwa saya telah menggunakan placeholder di mysqli_connect function—Anda harus menggantinya dengan nilai sebenarnya.

Mari kita lihat setiap placeholder untuk melihat kepanjangannya.

  • {HOST_NAME} :Ini mewakili nama host atau alamat IP server MySQL Anda. Jika Anda telah menginstal server MySQL pada sistem yang sama dengan PHP, Anda harus menggunakan localhost atau 127.0.0.1 . Di sisi lain, jika Anda menggunakan server MySQL yang dihosting secara eksternal, Anda dapat menggunakan nama host atau alamat IP yang sesuai.
  • {DATABASE_USERNAME} :Ini mewakili nama pengguna pengguna MySQL Anda. Pada dasarnya, ini adalah nama pengguna yang Anda gunakan untuk terhubung ke server MySQL Anda.
  • {DATABASE_PASSWORD} :Ini mewakili kata sandi pengguna MySQL Anda. Sekali lagi, ini adalah kata sandi yang Anda gunakan untuk terhubung ke server MySQL Anda bersama dengan nama pengguna MySQL.
  • {DATABASE_NAME} :Ini adalah nama database MySQL yang ingin Anda hubungkan. Setelah koneksi dibuat, Anda akan menanyakan database ini untuk operasi lebih lanjut.

Silakan dan ganti placeholder ini dengan nilai aktual. Dalam kasus saya, saya telah menginstal server MySQL secara lokal, dan saya memiliki pengguna MySQL dengan tutsplus-demo-user sebagai nama pengguna MySQL dan tutsplus-demo-password sebagai kata sandi MySQL. Dan dengan itu, contoh di atas terlihat seperti ini:

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno()) 
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

Jika Anda menjalankan contoh ini, itu harus membuat tautan koneksi basis data dan menetapkannya ke $mysqli_link variabel, yang akan kita gunakan nanti untuk melakukan berbagai jenis operasi database.

Di sisi lain, jika ada masalah dalam menyiapkan koneksi,  mysqli_connect_errno fungsi akan mengembalikan kode kesalahan, dan mysqli_connect_error fungsi akan menampilkan kesalahan yang sebenarnya. Dalam contoh di atas, kami telah menggunakannya untuk tujuan debugging.

Sekarang, kita memiliki koneksi yang berhasil ke server MySQL, dan kita akan melihat cara menggunakannya untuk melakukan berbagai jenis kueri mulai dari bagian berikutnya dan seterusnya.

Cara Menyisipkan Catatan

Pada bagian sebelumnya, kita telah membahas cara menggunakan mysqli_connect berfungsi untuk mengatur koneksi database dengan server MySQL. Di bagian ini, kita akan melanjutkan dan mendiskusikan cara menggunakan objek koneksi untuk melakukan INSERT kueri.

Jika Anda ingin mengikuti contoh yang dibahas dalam artikel ini, Anda harus membuat tabel MySQL berikut di database Anda. Ini adalah tabel yang akan kita gunakan dalam semua contoh mulai sekarang.

CREATE TABLE `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `last_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Lanjutkan dan buat tabel MySQL di atas dengan menggunakan perangkat lunak phpMyAdmin atau alat baris perintah.

Selanjutnya, mari kita buat db_insert.php file dengan isi sebagai berikut. Jangan lupa untuk mengganti parameter koneksi dengan milik Anda.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$insert_query = "INSERT INTO students(`first_name`,`last_name`,`email`)
VALUES ('". mysqli_real_escape_string($mysqli_link, 'John') ."','". mysqli_real_escape_string($mysqli_link, 'Wood') ."','". mysqli_real_escape_string($mysqli_link, '[email protected]') ."')";
 
// run the insert query
If (mysqli_query($mysqli_link, $insert_query)) {
    echo 'Record inserted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Pertama, kita menyiapkan koneksi database dengan menggunakan mysqli_connect fungsi, seperti yang telah kita bahas sebelumnya. Setelah itu, kami menyiapkan kueri penyisipan yang akan kami jalankan nanti. Penting untuk dicatat bahwa kita telah menggunakan mysqli_real_escape_string fungsi untuk keluar dari nilai string yang akan kita gunakan dalam kueri penyisipan. Secara khusus, Anda harus menggunakan fungsi ini ketika Anda berurusan dengan nilai yang dikirimkan melalui $_POST variabel untuk menghindari injeksi SQL.

Terakhir, kami telah menggunakan mysqli_query fungsi, yang membutuhkan dua argumen. Argumen pertama adalah tautan koneksi aktif tempat kueri akan dieksekusi. Dan argumen kedua adalah query MySQL yang ingin kita eksekusi. mysqli_query fungsi mengembalikan TRUE jika kueri berhasil dieksekusi.

Terakhir, kami telah menggunakan mysqli_close berfungsi untuk menutup koneksi database yang aktif. Ini adalah praktik yang baik untuk menutup koneksi database setelah Anda selesai dengan operasi database.

Silakan jalankan skrip, dan itu harus memasukkan catatan di students meja!

Cara Memperbarui Catatan

Memperbarui catatan dalam database dari skrip PHP sangat mirip dengan operasi penyisipan; satu-satunya perbedaan adalah bahwa kueri akan menjadi kueri pembaruan, bukan kueri penyisipan.

Mari kita revisi contoh di atas dan perbarui first_name bidang, seperti yang ditunjukkan pada contoh berikut.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$update_query = "UPDATE students SET `first_name` = '". mysqli_real_escape_string($mysqli_link,'Johnny') ."' WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $update_query)) {
    echo 'Record updated successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Silakan jalankan skrip, dan itu akan memperbarui catatan di students meja.

Cara Memilih Rekaman

Di bagian sebelumnya, kami membahas bagaimana Anda dapat menyisipkan dan memperbarui catatan dalam database dari skrip PHP. Di bagian ini, kita akan mengeksplorasi bagaimana Anda dapat mengambil record dari database dengan menggunakan berbagai jenis fungsi MySQLi.

Pertama, Anda perlu menggunakan mysqli_query berfungsi untuk mengeksekusi kueri pemilihan. Setelah berhasil mengeksekusi kueri pemilihan, mysqli_query function mengembalikan objek hasil mysqli, yang bisa kita gunakan untuk mengulangi catatan yang dikembalikan oleh kueri pemilihan. Ketika datang untuk mengambil dan mengulangi catatan dari objek hasil MySQLi, ada berbagai fungsi yang tersedia.

  • mysqli_fetch_all :Ini memungkinkan Anda untuk mengambil semua baris hasil sekaligus. Anda juga dapat menentukan apakah Anda menginginkan hasil sebagai larik asosiatif, larik numerik, atau keduanya.
  • mysqli_fetch_array :Ini memungkinkan Anda untuk mengambil satu baris dalam satu waktu. Dan dengan demikian, Anda harus menggunakan loop while untuk mengulangi semua catatan. Sekali lagi, Anda dapat menentukan apakah Anda menginginkan baris hasil sebagai larik asosiatif, larik numerik, atau keduanya.
  • mysqli_fetch_assoc :Ini mengambil baris hasil satu per satu sebagai array asosiasi.
  • mysqli_fetch_object :Ini mengambil baris hasil satu per satu sebagai objek.

Mari kita lihat contoh berikut untuk memahami cara kerjanya:

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$select_query = "SELECT * FROM students LIMIT 10";
$result = mysqli_query($mysqli_link, $select_query);

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo "First Name:" . $row['first_name'] . "<br/>";
    echo "Last Name:" . $row['last_name'] . "<br/>";
    echo "Email:" . $row['email'] . "<br/>";
    echo "<br/>";
}

// close the db connection
mysqli_close($mysqli_link);
?>

Seperti yang Anda lihat, kami telah menggunakan mysqli_fetch_array fungsi dengan MYSQLI_ASSOC pilihan sebagai argumen kedua. Dan dengan demikian, ia mengembalikan baris hasil sebagai array asosiasi. Jika Anda menggunakan MYSQLI_NUM pilihan, Anda akan mengaksesnya seperti $row[0] , $row[1] dan $row[2] dalam contoh di atas.

Di sisi lain, jika Anda menggunakan mysqli_fetch_object fungsi dalam contoh di atas, Anda dapat mengakses nilai-nilai seperti yang ditunjukkan pada cuplikan berikut. Untuk singkatnya, saya hanya akan menyertakan cuplikan while loop.

…
…
while ($row = mysqli_fetch_object($result)) {
    echo "First Name:" . $row->first_name . "<br/>";
    echo "Last Name:" . $row->last_name . "<br/>";
    echo "Email:" . $row->email . "<br/>";
    echo "<br/>";
}
...
...

Jadi dengan cara ini, Anda dapat mengambil dan menampilkan catatan dari database MySQLi.

Cara Menghapus Catatan

Di bagian ini, kita akan melihat cara menjalankan kueri penghapusan dari skrip PHP. Menghapus catatan dari database adalah operasi yang cukup mudah karena Anda hanya perlu menyiapkan kueri penghapusan dan menjalankannya dengan mysqli_query fungsi.

Mari kita lihat contoh berikut untuk melihat cara kerjanya.

<?php
$mysqli_link = mysqli_connect("localhost", "tutsplus-demo-user", "tutsplus-demo-password", "tutsplus-demo-database");

if (mysqli_connect_errno())
{
    printf("MySQL connection failed with the error: %s", mysqli_connect_error());
    exit;
}

$delete_query = "DELETE FROM students WHERE `email` = '[email protected]'";
 
// run the update query
If (mysqli_query($mysqli_link, $delete_query)) {
    echo 'Record deleted successfully.';
}
 
// close the db connection
mysqli_close($mysqli_link);
?>

Seperti yang Anda lihat, semuanya sama seperti yang telah kita lihat dengan contoh sisipkan dan perbarui, kecuali bahwa kueri dalam kasus ini adalah kueri penghapusan.

Jadi begitulah cara Anda dapat melakukan berbagai jenis operasi database dari skrip PHP.

Dan dengan itu, kita telah mencapai akhir dari tutorial ini. Apa yang telah kita diskusikan sejauh ini akan membantu Anda memperkuat konsep konektivitas database, khususnya bagaimana menghubungkan PHP ke MySQL dan melakukan berbagai jenis operasi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pernyataan pilih MySQL dengan CASE atau IF ELSEIF? Tidak yakin bagaimana mendapatkan hasilnya

  2. Cara menginstal MySQL di macOS

  3. Dapatkan nilai AUTO_INCREMENT saat ini untuk tabel apa pun

  4. UnicodeEncodeError:codec 'latin-1' tidak dapat menyandikan karakter

  5. Tutorial rating bintang jquery menggunakan php dan mysql