Latest web development tutorials
×

PHP kuliah

PHP kuliah PHP pengantar singkat PHP memasang PHP tatabahasa PHP variabel PHP echo/print PHP Jenis Data PHP konstan PHP tali PHP operator PHP If...Else PHP Switch PHP susunan PHP Sorting array PHP superglobals PHP While sirkulasi PHP For sirkulasi PHP fungsi PHP Variabel sihir PHP Ruang nama PHP Berorientasi Objek

PHP bentuk

PHP bentuk PHP bentuk Authentication PHP bentuk - bidang yang harus diisi PHP bentuk - email verifikasi dan URL PHP contoh bentuk lengkap PHP $_GET variabel PHP $_POST variabel

PHP canggih Tutorial

PHP Array multidimensi PHP tanggal PHP berisi PHP berkas PHP Upload File PHP Cookie PHP Session PHP E-mail PHP keamanan E-mail PHP Error PHP Exception PHP filter PHP filter lanjutan PHP JSON

PHP 7 Fitur baru

PHP 7 Fitur baru

PHP database

PHP MySQL pengantar singkat PHP MySQL koneksi PHP MySQL Membuat database PHP MySQL Buat tabel data PHP MySQL memasukkan data PHP MySQL Menyisipkan beberapa data yang PHP MySQL Laporan disiapkan PHP MySQL membaca data PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX pengantar singkat AJAX PHP AJAX database AJAX XML AJAX pencarian real-time AJAX RSS Reader AJAX suara

PHP Reference manual

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP image Processing PHP RESTful

PHP MySQL disiapkan laporan

pernyataan siap untuk mencegah MySQL injeksi sangat berguna.


pernyataan siap dan parameter terikat

pernyataan siap untuk melaksanakan sejumlah pernyataan SQL yang sama, dan melaksanakan lebih efisien.

Karya pernyataan siap sebagai berikut:

  1. Pretreatment: Buat pernyataan Template SQL dikirim ke database. Nilai parameter milik "?" Mark. Sebagai contoh:

    INSERT 
    	INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)
  2. analisis database, mengkompilasi, mengeksekusi SQL laporan Template optimasi query, dan menyimpan hasilnya tidak output.

  3. Eksekusi: Akhirnya, nilai-nilai parameter yang dikirimkan ke aplikasi yang mengikat ( "?" Mark), database mengeksekusi pernyataan. Aplikasi dapat dijalankan berkali-kali, jika nilai parameter tidak sama.

Dibandingkan dengan eksekusi langsung dari pernyataan SQL, pernyataan siap memiliki dua keunggulan utama:

  • pernyataan siap secara dramatis mengurangi waktu analisis, hanya query (meskipun laporan dijalankan).

  • parameter terikat untuk mengurangi bandwidth server, Anda hanya perlu mengirim parameter query bukan seluruh pernyataan.

  • pernyataan siap melawan SQL injection sangat berguna, karena setelah menggunakan protokol yang berbeda untuk mengirim nilai parameter untuk memastikan keabsahan data.


MySQLi disiapkan laporan

Contoh berikut menggunakan MySQLi dalam sebuah pernyataan, dan mengikat parameter yang sesuai:

Contoh (MySQLi menggunakan pernyataan siap)

<? Php
$ Servername = "localhost";
$ Username = "username";
$ Password = "password";
$ Dbname = "myDB";

// Buat koneksi
$ Conn = baru mysqli ($ servername, $ username, $ password, $ dbname);

// Koneksi Uji
if ($ conn-> connect_error) {
die ( "Koneksi gagal:" $ conn-> connect_error.);
}

// Pretreatment dan mengikat
$ Stmt = $ conn-> mempersiapkan ( "INSERT INTO MyGuests (nama depan, nama belakang, email) VALUES (,,) ???");
$ Stmt-> bind_param ( "sss", $ firstname, lastname $, $ email);

// Set parameter dan melakukan
$ Nama depan = "John";
$ Namabelakang = "Doe";
$ Email = "[email protected]";
$ Stmt-> mengeksekusi ();

$ Nama depan = "Mary";
$ Namabelakang = "Moe";
$ Email = "[email protected]";
$ Stmt-> mengeksekusi ();

$ Nama depan = "Julie";
$ Namabelakang = "Dooley";
$ Email = "[email protected]";
$ Stmt-> mengeksekusi ();

echo "Rekor baru dimasukkan berhasil";

$ Stmt-> close ();
$ Conn-> close ();
?>

Parsing setiap baris kode dalam contoh berikut:

"INSERT INTO MyGuests (nama depan, nama belakang, email) VALUES (?,?,?)"

Dalam pernyataan SQL, kita menggunakan tanda tanya (?), Di sini kita bisa mengganti tanda tanya integer, string, double-presisi floating-point, dan nilai-nilai Boolean.

Selanjutnya, mari kita lihat bind_param () fungsi:

$ Stmt-> bind_param ( "sss", $ firstname, lastname $, $ email);

Parameter SQL fungsi mengikat, dan memberitahu nilai parameter basis data. "Sss" jenis pengolahan data kolom parameter untuk parameter yang tersisa. s karakter memberitahu database bahwa parameter string.

Ada empat jenis parameter:

  • i - bilangan bulat (integer)
  • d - ganda (double presisi floating point)
  • s - String (string)
  • b - BLOB (binary objek besar: biner benda-benda besar)

Setiap parameter diperlukan untuk menentukan jenis.

Tipe data parameter memberitahu database, Anda dapat mengurangi risiko SQL injection.

catatan Catatan: Jika Anda ingin memasukkan data tambahan (input pengguna), verifikasi data sangat penting.


PDO disiapkan pernyataan dalam

Contoh-contoh berikut kita menggunakan pernyataan siap di PDO dan parameter mengikat:

Contoh (PDO menggunakan pernyataan siap)

<? Php
$ Servername = "localhost";
$ Username = "username";
$ Password = "password";
$ Dbname = "myDBPDO";

try {
$ Conn = baru PDO ( "mysql: host = $ servername; dbname = $ dbname", $ username, $ password);
// Mengatur mode error PDO pengecualian
$ Conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);

// Pretreatment dan SQL parameter mengikat
$ Stmt = $ conn-> mempersiapkan ( "INSERT INTO MyGuests (nama depan, nama belakang, email)
NILAI (: Nama depan ,: lastname ,: email) ");
$ Stmt-> bindParam ( ': firstname', $ firstname);
$ Stmt-> bindParam ( ': nama belakang', $ nama belakang);
$ Stmt-> bindParam ( ': email', $ email);

// Baris Insert
$ Nama depan = "John";
$ Namabelakang = "Doe";
$ Email = "[email protected]";
$ Stmt-> mengeksekusi ();

// Sisipkan baris lain
$ Nama depan = "Mary";
$ Namabelakang = "Moe";
$ Email = "[email protected]";
$ Stmt-> mengeksekusi ();

// Sisipkan baris lain
$ Nama depan = "Julie";
$ Namabelakang = "Dooley";
$ Email = "[email protected]";
$ Stmt-> mengeksekusi ();

echo "Rekor baru dimasukkan berhasil";
}
catch (PDOException $ e)
{
.. Echo $ sql "Situs" $ e> getMessage ();
}
$ Conn = null;
?>