Tôi đã được thông báo hôm nay rằng tôi thực sự nên sử dụng PDO và các tuyên bố chuẩn bị trong đơn đăng ký của mình. Trong khi tôi hiểu những lợi ích, tôi đang đấu tranh để hiểu làm thế nào tôi thực hiện chúng vào công việc của tôi. Bên cạnh thực tế là nó làm cho mã sạch hơn nhiều, tôi nên có một lớp cơ sở dữ liệu cụ thể mà nhà tất cả các báo cáo chuẩn bị của tôi hoặc tôi nên tạo một mỗi lần tôi muốn chạy một truy vấn? Tôi đang tìm kiếm nó rất khó hiểu khi tôi nên sử dụng một truy vấn PDO tiêu chuẩn và khi tôi nên sử dụng một tuyên bố chuẩn bị. Bất kỳ ví dụ, mẹo hoặc liên kết hướng dẫn nào sẽ được đánh giá cao.Báo cáo chuẩn bị PDO PHP
30
A
Trả lời
31
Có hai ví dụ tuyệt vời về tài liệu pdo::prepare().
Tôi đã đưa chúng vào đây và đơn giản hóa chúng một chút.
Thông số này sử dụng thông số ?
. $dbh
về cơ bản là một đối tượng PDO. Và những gì bạn đang làm là đặt các giá trị 150
và 'red'
vào dấu chấm hỏi thứ nhất và thứ hai tương ứng.
/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
Điều này sử dụng thông số có tên và phức tạp hơn một chút.
/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
Các vấn đề liên quan
- 1. PDO với INSERT INTO thông qua báo cáo chuẩn bị
- 2. PHP ::: chuẩn bị Báo cáo ::: freeresult() ::: close()
- 3. mysql báo cáo chuẩn bị vĩnh viễn
- 4. Báo cáo lỗi báo cáo chuẩn bị MySQLi
- 5. Báo cáo chuẩn bị phía khách hàng là gì?
- 6. Báo cáo chuẩn bị - Số hàng
- 7. Báo cáo được chuẩn bị MySQLi?
- 8. Đệ quy trong các báo cáo đã chuẩn bị
- 9. Đóng báo cáo đã chuẩn bị
- 10. MS Access chuẩn bị báo cáo
- 11. Báo cáo MySQLi/Chuẩn bị & SQL_CALC_FOUND_ROWS
- 12. Báo cáo đã chuẩn bị trong VB.NET
- 13. php pdo chuẩn bị các biến lặp đi lặp lại
- 14. báo cáo được chuẩn bị trong đường ray/activerecord
- 15. Đặt timeouts trên báo cáo đã chuẩn bị
- 16. PHP: Báo cáo chuẩn bị (newbie), chỉ cần xác nhận điều này về SQL injection
- 17. Báo cáo được chuẩn bị động có tệ không? (với php + mysqli)
- 18. PDO, Mysql và phát biểu bản địa chuẩn bị
- 19. Trong PHP, PDO bảo vệ như thế nào khỏi việc tiêm SQL? Báo cáo chuẩn bị hoạt động như thế nào?
- 20. Đối phó với trích dẫn thêm bởi PDO :: chuẩn bị()
- 21. Các câu lệnh chuẩn bị PHP PDO có cần phải được thoát không?
- 22. Các mã thông báo nào có thể được tham số hóa trong các câu lệnh chuẩn bị PDO?
- 23. PHP PDO Caching
- 24. công cụ báo cáo php
- 25. Lỗi báo cáo tắt php
- 26. PDO chuẩn bị phát biểu với các kí hiệu
- 27. Tuyên bố chuẩn bị PDO, được sử dụng chính xác?
- 28. Lấy lại truy vấn từ câu lệnh chuẩn bị PDO
- 29. Báo cáo chuẩn bị có làm chậm chương trình một cách dễ thấy không?
- 30. Báo cáo chuẩn bị sẵn sàng ngăn chặn các cuộc tấn công tiêm sql?
trong 2 ví dụ của bạn, tốt hơn là 1 ví dụ khác không? – JasonDavis
Đối với các truy vấn đơn giản, phải không? Ổn. Nhưng lưu ý rằng các câu lệnh chuẩn bị sẽ thêm một trích dẫn xung quanh mọi giá trị. Trong ví dụ thứ 2, bạn có thể nói rằng một giá trị là một số và giá trị khác là một chuỗi. (mặc dù nó không được hiển thị ở đây) –
Chỉ cần phụ thuộc vào những gì bạn muốn làm với nó ... Nếu bạn muốn sử dụng cùng một giá trị nhiều lần, thì bạn nên sử dụng các tham số có tên. Điều này là bởi vì nếu bạn sử dụng? 'S, nó chỉ đơn giản là chèn chúng theo thứ tự chúng xuất hiện. Nếu bạn đã sử dụng các tham số được đặt tên, thì bạn có thể sử dụng chúng nhiều lần. Của? Chỉ là một phiên bản đặc hơn cho các truy vấn đơn giản hơn. Người ta không có lợi thế hơn người khác theo bất kỳ cách nào khác. – BraedenP