使用$ _GET ['id']从url获取值并在mysqli查询中使用它的最佳或正确方法是什么?
目前我正在使用常规表达式:
$ id = preg_replace('/ {([a-zA-Z0-9] +)} /','',$ _GET ['id']);
但我不知道这是否是正确或最好的方法。
请解释你的答案。
答案 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 强>