PDO不会选择HTML

时间:2012-06-20 15:05:47

标签: php sql pdo

$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);

上面的代码给了我空数组。该用户名存在于db中。怎么了?

1 个答案:

答案 0 :(得分:0)

我认为username列的类型为CHAR(n)而不是VARCHAR(n)CHAR(n)在字符串的末尾添加空格以填充它以适合列的宽度。将您的列更改为VARCHAR(n),并确保之后修剪所有多余的空格。

否则,如果您无法更改列,则可以在将其与数据库进行比较之前使用str_pad($username_decoded, length of column),或在查询中使用TRIM(username)