使用 PHP PDO 尝试在数据库中进行简单的搜索。错误返回意味着PDO
无法确定参数类型。我STR
在绑定时明确指定它,并将其转换为查询字符串中的 varchar。该查询在没有 CAST 的情况下在 MySQL 中运行良好。
// Get course retry limit from database
$query = $this->db_connection->prepare("
SELECT column FROM datbase.table
WHERE
column LIKE CAST(CONCAT('%', :search_term, '%') as varchar)
GROUP BY column"
);
$query->bindValue(':search_term', $search_term, PDO::PARAM_STR);
$query->execute();
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: :search_term
如果我像在直接查询调用中那样使用单引号显式转义查询中的字符串,则会收到另一个错误:
Fatal error: Uncaught PDOException: SQLSTATE[42P18]: Indeterminate datatype: 7 ERROR: could not determine data type of parameter $1