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

Cara mana yang lebih baik untuk menulis kode PHP untuk memasukkan data?

Tidak juga!

Contoh pertama Anda menggunakan fungsi yang telah dihapus dari PHP bertahun-tahun yang lalu. mysql_query() tidak ada dan tidak boleh digunakan lagi. Alasan mengapa itu dihapus adalah Anda harus menggunakan pernyataan yang sudah disiapkan sebagai gantinya. Mereka disediakan oleh ekstensi mysqli atau PDO.

Contoh kedua Anda lebih baik, tetapi terlalu berantakan.

  • Anda tidak boleh echo mysqli_query . Tidak ada yang berguna untuk dicetak dari fungsi ini.
  • Biasakan menggunakan pernyataan yang disiapkan setiap saat dan gunakan placeholder untuk data variabel. Sampai sekarang kueri Anda konstan, tetapi menggunakan pernyataan yang disiapkan masih merupakan praktik yang baik jika Anda perlu menambahkan parameter nanti.
  • Hindari penggunaan fungsi seperti mysqli_fetch_array() . Mengulang opsi hasil satu per satu berantakan dan jarang berguna.
  • Jangan pernah memeriksa nilai kembalian panggilan mysqli. Tidak ada gunanya. Aktifkan pelaporan kesalahan sebagai gantinya. Lihat Bagaimana cara mendapatkan pesan kesalahan di MySQLi?
  • Selalu atur rangkaian karakter yang benar. Seharusnya utf8mb4 99% dari waktu.
  • Kueri SQL dapat disimpan dalam variabel terpisah, tapi apa gunanya? Anda hanya akan meneruskannya sebagai argumen ke query fungsi. Tidak perlu menggunakan variabel perantara.
  • Jangan gunakan mysqli. Anda harus menggunakan PDO sebagai gantinya. Jika Anda harus menggunakan mysqli, buatlah fungsi atau kelas pembungkus sederhana untuk tujuan ini dan jalankan fungsi generik Anda alih-alih bermain-main dengan fungsi mysqli.

Berikut adalah contoh bagaimana saya akan melakukannya. Pertama saya mengaktifkan pelaporan kesalahan untuk mysqli, saya membuka koneksi dan mengatur charset. Lalu saya mendeklarasikan fungsi yang mengambil 3 parameter dan mengembalikan array. Parameter pertama adalah koneksi database Anda yang baru saja Anda buka. Kedua adalah kueri SQL Anda dengan placeholder jika ada. Ketiga adalah opsional dan merupakan array nilai yang akan diikat ke placeholder sebagai parameter. Fungsi ini berfungsi untuk semua jenis kueri SQL. Sisa kode menjadi sangat sederhana.

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = new mysqli("myserver.com", "test", "sunil7117", "test");
$link->set_charset('utf8mb4'); // always set the charset

/**
 * Executes an SQL query on the database.
 *
 * @param \mysqli $mysqli
 * @param string $query e.g. SELECT * FROM users WHERE username=?
 * @param array $params An array of parameters to be bound in the given order to the placeholders in SQL
 * @return array
 */
function prepared_query(\mysqli $mysqli, string $query, array $params = []): array {
    $stmt = $mysqli->prepare($query);
    if ($params) {
        $stmt->bind_param(str_repeat("s", count($params)), ...$params);
    }
    $stmt->execute();
    if ($result = $stmt->get_result()) {
        return $result->fetch_all(MYSQLI_BOTH);
    }
    return null;
}

prepared_query($link, "UPDATE user SET email='[email protected]' WHERE email='[email protected]' LIMIT 1");
echo "<br>";

$result = prepared_query($link, "SELECT * FROM user");
echo "welcome to database<br>";

if ($result) {
    $row = $result[0];
    echo "my E-mail id is <strong> ".$row[1]. "</strong> and passoword is <strong>".$row[2]."</strong>";
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cara menampilkan hasil kueri

  2. Basis Data Default MySQL

  3. Pernyataan If Else sederhana di sql

  4. mysql while loop Break setara

  5. Filter input null atau kosong menggunakan LOAD DATA INFILE di MySQL