1
$username_decoded = '<i>marco</i>';
$stmt = $this->db->prepare("SELECT * FROM foo WHERE username=:username");
$stmt->bindParam(':username',$username_decoded,PDO::PARAM_STR);
$stmt->execute();

$all_fetched = $stmt->fetchAll(PDO::FETCH_NUM);

print_r($all_fetched);

上記のコードでは、空の配列が得られます。そのユーザー名はデータベースに存在します。どうしたの?

4

1 に答える 1

0

私はusername列のタイプがそうではCHAR(n)ないことに賭けていVARCHAR(n)ます。CHAR(n)文字列の最後にスペースを追加して、列の幅に合わせて文字列を埋めます。列をに変更し、VARCHAR(n)後で余分なスペースをすべて削除してください。

それ以外の場合、列を変更できない場合は、データベースと比較する前に使用するか、クエリで使用できます。str_pad($username_decoded, length of column)TRIM(username)

于 2012-06-20T15:25:26.633 に答える