Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Các câu lệnh chuẩn bị cho MySQL

Sử dụng PDO (Đối tượng dữ liệu PHP) để kết nối với cơ sở dữ liệu MySQL của bạn. Phương pháp này sẽ đảm bảo rằng tất cả đầu vào cơ sở dữ liệu sẽ luôn được coi là chuỗi văn bản và bạn sẽ không bao giờ phải thực hiện bất kỳ thao tác thoát thủ công nào.

Điều này kết hợp với việc sử dụng đúng html_entities () để hiển thị dữ liệu từ cơ sở dữ liệu của bạn là một cách chắc chắn và tốt để bảo vệ trang của bạn khỏi bị tiêm. Tôi luôn sử dụng PDO để xử lý tất cả các kết nối cơ sở dữ liệu trong các dự án của mình.

Tạo đối tượng cơ sở dữ liệu (và trong trường hợp này thực thi một mã hóa ký tự nhất định):

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();
}

Sau đó, sử dụng nó như vậy:

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

hoặc

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

và với các ký tự đại diện:

$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!";
}

Đọc thêm:

Làm cách nào để ngăn chặn việc đưa SQL vào PHP?

Khi nào * không * sử dụng báo cáo đã chuẩn bị?

mức độ an toàn của các báo cáo do PDO chuẩn bị

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. Các lựa chọn thay thế MySQL Workbench hàng đầu

  2. truy cập bị từ chối đối với tải dữ liệu trong tệp trong MySQL

  3. Làm thế nào để cài đặt trình điều khiển pdo trong php docker image?

  4. Di chuyển Cơ sở dữ liệu MySQL từ Amazon RDS sang DigitalOcean

  5. Cách xuất cơ sở dữ liệu bằng dòng lệnh