ユーザー入力に似た名前をデータベースで検索するだけの関数があります。ただし、パラメーター :uname で Like を使用することはできません。私がウェブを見ている人は皆、私にこのようなことをするように勧めています
$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;
}