Tôi muốn thực hiện truy vấn mysql sau:PDO chuẩn bị phát biểu với các kí hiệu
SELECT * FROM `gc_users` WHERE `name` LIKE '%anyname%'
Tôi cố gắng này không thành công:
$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE :name");
$stmt->bindParam(':name', "%" . $name . "%");
$stmt->execute();
$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE '%:name%'");
$stmt->bindParam(':name', $name);
$stmt->execute();
Vì vậy, tôi hỏi bạn nếu nó có thể sử dụng các ký tự đại diện% với các phát biểu đã chuẩn bị.
/chỉnh sửa
Cảm ơn bạn. làm việc với bindValue
:
$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE :name");
$stmt->bindValue(':name', '%' . $name . '%');
$stmt->execute();
Đối với nỗ lực đầu tiên của bạn - thay đổi ' bindParam' đến 'bindValue' và chuyển [báo cáo lỗi cho PDO] (http://stackoverflow.com/questions/15990857/reference-frequently-asked-questions-about-pdo#15990858) –