我有这个函数,它应该只在数据库中查找与用户输入相似的名称。但是我不能将 Like 与参数 :uname 一起使用。我在网上看到的每个人都建议我做这样的事情
$username = "$%username%";
但是查询不返回任何结果。
我知道数据库是正确创建的,因为如果我问这个,它会返回正确的答案
SELECT * FROM $schema.pessoa WHERE nome LIKE %Mike%
但是,在我的代码中 $username 包含“Mike”,但它没有返回任何内容,我认为 %username 没有正确制作,但是如果我对其进行回显,它确实包含我想要的字符串 - “Mike”。所以问题似乎出在我用参数质疑它的方式上,但我不知道
function SearchUser($username) {
global $dbh, $schema;
try {
$username = "$%username%";
$stmt = $dbh->prepare("SELECT * FROM $schema.pessoa WHERE nome LIKE :uname");
$stmt->bindParam(':uname', $username);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if(empty($result))
{echo 'empty';}
return $result;
}
catch(PDOException $e) {
$_SESSION["s_errors"]["generic"][] = "ERRO[32]: ".$e->getMessage();
header("Location: list.php");
die;
}