2012-06-17 27 views
13

Tôi đã đọc nhiều ví dụ về cách các truy vấn này nên được viết nhưng tôi đang gặp khó khăn để có được cụ thể này muốn chạy khi sử dụng bindParamSử dụng như thế nào trong bindParam cho một MySQL Query PDO

Điều này có thể đúng cách để khớp tên người dùng bắt đầu bằng dấu?

$term = "a"; 
$term = "'$term%'"; 

$sql = "SELECT username 
     FROM `user` 
     WHERE username LIKE :term 
     LIMIT 10";  

$core = Connect::getInstance(); 

$stmt = $core->dbh->prepare($sql); 
$stmt->bindParam(':term', $term, PDO::PARAM_STR); 
$stmt->execute(); 
$data = $stmt->fetchAll(); 

Trả lời

21

Không, bạn không cần phải có dấu ngoặc kép đơn bên trong vì vậy chỉ cần $term = "$term%";

Tuyên bố bạn đang chạy bây giờ sẽ cố gắng để phù hợp với 'a%' thay vì a%

bindParam sẽ đảm bảo rằng tất cả dữ liệu chuỗi được tự động trích dẫn đúng khi được đưa ra cho câu lệnh SQL.

+0

Đây là mã mẫu: https://gist.github.com/arsho/a203e7bc156ea566587361a76038f020 – arsho

Các vấn đề liên quan