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

Pernyataan yang Disiapkan MySQL

Gunakan PDO (Objek Data PHP) untuk terhubung ke database MySQL Anda. Metode ini akan memastikan bahwa semua input database akan selalu diperlakukan sebagai string teks dan Anda tidak perlu melakukan pelolosan manual.

Ini dikombinasikan dengan penggunaan html_entities() yang tepat untuk menampilkan data dari database Anda adalah cara yang solid dan baik untuk melindungi halaman Anda dari injeksi. Saya selalu menggunakan PDO untuk menangani semua koneksi database saya di proyek saya.

Buat objek database (dan dalam hal ini terapkan pengkodean karakter tertentu):

try {
    $db = new PDO("mysql:host=[hostname];dbname=[database]",'[username]','[password]');
    $db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES utf8");
    $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    $db->exec('SET NAMES utf8');
} catch (PDOException $e) {
    echo $e->getMessage();
}

Kemudian gunakan seperti ini:

$id = 1;
$q = $db->prepare('SELECT * FROM Table WHERE id = ?');
$q->execute(array($id));
$row = $q->fetch();
echo $row['Column_1'];

atau

$q = $db->prepare('UPDATE Table SET Column_1 = ?, Column_2 = ? WHERE id = ?');
$q->execute(array('Value for Column_1','Value for Column_2',$id));

dan dengan wildcard:

$search = 'John';
$q = $db->prepare('SELECT * FROM Table WHERE Column_1 LIKE ?');
$q->execute(array('%'.$search.'%'));
$num = $q->rowCount();
if ($num > 0) {
  while ($row = $q->fetch()) {
    echo $row['Column_1'];
  }
} else {
  echo "No hits!";
}

Baca selengkapnya:

Bagaimana cara mencegah injeksi SQL di PHP?

Kapan *tidak* menggunakan pernyataan yang disiapkan?

seberapa aman pernyataan yang disiapkan PDO

http://php.net/manual/en/book.pdo.php



  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 Menjalankan host flush mysqladmin di Amazon RDS

  2. Pembaruan MySQL KASUS KETIKA/KEMUDIAN/LAINNYA

  3. MySQL match() against() - urutkan berdasarkan relevansi dan kolom?

  4. Menyebarkan Database Relasional MySQL di Ubuntu 12.04 (Trenggiling Tepat)

  5. Cari semua kolom tabel menggunakan kondisi satu tempat dengan kata kunci tunggal di mysql