PHP过滤器(清理)$ _GET在mysqli查询中使用?

时间:2014-11-29 15:16:23

标签: php mysql mysqli

使用$ _GET ['id']从url获取值并在mysqli查询中使用它的最佳或正确方法是什么?

目前我正在使用常规表达式:

  

$ id = preg_replace('/ {([a-zA-Z0-9] +)} /','',$ _GET ['id']);

但我不知道这是否是正确或最好的方法。

请解释你的答案。

2 个答案:

答案 0 :(得分:2)

你正在重新发明轮子。根据您访问数据库的方式,您可能不需要做太多工作(即PDO将自行处理)或使用正确的函数来转义数据,例如mysqli_real_escape_string()

答案 1 :(得分:1)

如果您已经在使用mysqli,那么您不需要为了基本的东西而在手中消除消毒的痛苦。您可以使用准备好的语句来处理那些

if(isset($_GET["id"])){
$id=$_GET['id'];
$stmt = $mysqli->prepare("SELECT abc FROM table WHERE id=?");
mysqli_stmt_bind_param($stmt, "i", $id);   // or s if its a string
mysqli_stmt_execute($stmt);
}

您可以在此处查看示例,了解如何处理结果

<强> Manual