⊗ppSpPDPP 60 of 83 menu

Trình giữ chỗ theo vị trí trong PDO của PHP

Hãy cùng tìm hiểu cách làm việc với các trình giữ chỗ theo vị trí. Giả sử chúng ta có hai biến, mà chúng ta muốn chèn vào truy vấn:

<?php $min = 1; $max = 5; ?>

Giả sử chúng ta muốn chèn các biến của mình theo cách sau:

<?php $sql = "SELECT * FROM users WHERE id>$min and id<$max"; ?>

Tuy nhiên, làm như vậy không an toàn. Vì vậy, thay vì chèn trực tiếp các biến, hãy thay thế chúng bằng các trình giữ chỗ theo vị trí, được biểu thị bằng dấu chấm hỏi:

<?php $sql = 'SELECT * FROM users WHERE id>? and id<?'; ?>

Bây giờ hãy thực thi lệnh chuẩn bị truy vấn:

<?php $res = $pdo->prepare($sql); ?>

Bây giờ hãy thực thi truy vấn, truyền cho nó tham số là một mảng chứa các biến của chúng ta. Trong trường hợp này các biến sẽ được chèn vào truy vấn theo đúng thứ tự mà chúng được chỉ định trong mảng:

<?php $res->execute([$min, $max]); ?>

Sau đó chúng ta có thể nhận được kết quả truy vấn:

<?php while ($row = $res->fetch()) { var_dump($row); } ?>

Tổng hợp tất cả lại, chúng ta sẽ có đoạn mã sau:

<?php $min = 1; $max = 5; $sql = 'SELECT * FROM users WHERE id>? and id<?'; $res = $pdo->prepare($sql); $res->execute([$min, $max]); while ($row = $res->fetch()) { var_dump($row); } ?>

Cho các biến:

<?php $age = 30; $salary = 1000; ?>

Tìm tất cả người dùng, mà tuổi hoặc mức lương bằng với giá trị đã cho trong các biến.

Hãy thử thực hiện một cuộc tấn công SQL injection vào mã của bạn. Hãy chắc chắn rằng nó sẽ không thành công.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối