Php 如何修复PDO execute语句中的http错误500?

Php 如何修复PDO execute语句中的http错误500?,php,mysql,pdo,Php,Mysql,Pdo,我试图在php PDO中执行一个查询,但execute方法导致HTTP错误500 $query = "select * from job_t where title like '%:title%' and salary>=:salary"; $st = $conn->prepare($query); $st->bindParam(":title", $_GET['title']); $st->bindParam(":salary", $_GET['salary']); $

我试图在php PDO中执行一个查询,但execute方法导致HTTP错误500

$query = "select * from job_t where title like '%:title%' and salary>=:salary";
$st = $conn->prepare($query);
$st->bindParam(":title", $_GET['title']);
$st->bindParam(":salary", $_GET['salary']);
$st->execute();

预期的输出是来自作业的表格,但实际结果是http错误500

'%:title%'
不应工作。。所以

尝试使用concat构建适当的like子句

$query = "select * from job_t 
  where title like concat('%', :title, '%')  and salary>=:salary";

不要将占位符放在引号中,它会将其视为字符串。将通配符添加到要绑定的变量中,并且只传入占位符。500错误是一个通用的错误消息,几乎涵盖了脚本中可能出现错误的每一件事。检查服务器错误日志以了解确切的错误消息。换句话说,
:x
类型占位符必须保持空白。如果它在一个字符串中,那么驱动程序会尽力不替换,因为它假定您希望使用literal
'%:title%'
作为字符串。