我正在开发一个应用程序,可以通过多种不同的条件搜索用户。可用的标准之一是按名称搜索。名称存储在数据库中,并且删除了 HTML 字符,例如。 a ' 存储为 '
。这样做的问题是,如果用户输入常规英文名称按名称进行搜索,它会在数据库中查找英文名称而不是删除 HTML 的名称。我尝试过使用 htmlspecialchars($string, ENT_QUOTES)
,但由于某种原因,它并不总是正确替换单引号。谁能想到为什么会发生这种情况,或者推荐更好的方法?谢谢!
最佳答案
您不需要替换单引号。您需要做的就是使用 PDO
或 MySQLi
扩展。 PDO 示例,
$stmt = $pdo->prepare('SELECT * FROM tableName WHERE name = :name');
$stmt->execute(array(':name' => $name));
foreach ($stmt as $row)
{
// do something with $row
}
这样,即使值有单引号,它也允许您进行搜索。
关于php - 替换单引号以正确搜索数据库的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12534561/