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

PHP:Memasukkan Nilai dari Formulir ke MySQL

Kode berikut hanya mendeklarasikan variabel string yang berisi query MySQL:

$sql = "INSERT INTO users (username, password, email)
    VALUES ('".$_POST["username"]."','".$_POST["password"]."','".$_POST["email"]."')";

Itu tidak mengeksekusi kueri. Untuk melakukannya, Anda perlu menggunakan beberapa fungsi, tetapi izinkan saya menjelaskan hal lain terlebih dahulu.

JANGAN PERCAYA INPUT PENGGUNA :Anda tidak boleh menambahkan input pengguna (seperti input formulir dari $_GET atau $_POST ) langsung untuk permintaan Anda. Seseorang dapat dengan hati-hati memanipulasi input sedemikian rupa sehingga dapat menyebabkan kerusakan besar pada database Anda. Itu disebut Injeksi SQL. Anda dapat membaca lebih lanjut tentangnya di sini

Untuk melindungi skrip Anda dari serangan semacam itu, Anda harus menggunakan Pernyataan yang Disiapkan. Selengkapnya tentang pernyataan yang disiapkan di sini

Sertakan pernyataan yang sudah disiapkan ke kode Anda seperti ini:

$sql = "INSERT INTO users (username, password, email)
    VALUES (?,?,?)";

Perhatikan bagaimana ? digunakan sebagai pengganti nilai. Selanjutnya Anda harus menyiapkan pernyataan menggunakan mysqli_prepare :

$stmt = $mysqli->prepare($sql);

Kemudian mulailah mengikat variabel input ke pernyataan yang disiapkan:

$stmt->bind_param("sss", $_POST['username'], $_POST['email'], $_POST['password']);

Dan akhirnya jalankan pernyataan yang sudah disiapkan. (Di sinilah penyisipan yang sebenarnya terjadi)

$stmt->execute();

CATATAN Meskipun bukan bagian dari pertanyaan, saya sangat menyarankan Anda untuk tidak pernah menyimpan kata sandi dalam teks yang jelas. Sebagai gantinya, Anda harus menggunakan password_hash untuk menyimpan hash kata sandi



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah Dapper berfungsi di Mono?

  2. Bagaimana Fungsi REGEXP_SUBSTR() Bekerja di MySQL

  3. penggunaan regex di mysql

  4. Menjalankan skrip sql pada file batch dengan aksen

  5. MySQL InnoDB Cluster 8.0 - Panduan Penerapan Lengkap:Bagian Satu