我运行一个具有各种产品页面的网站,其数据使用以下方式调用:
$ProductDescription= mysql_real_escape_string($_GET["ProductDescription"]);
最近,这已经停止工作 - 我假设我的服务器由于安全漏洞而停止允许它(如果只是手动输入 var $ProductDescription,则该页面可以正常工作)。所以我的问题是,从 URL 中提取变量的最佳代码是什么?我看到过一些关于 MySQLi 的模糊建议,但我真的不知道它是什么或如何使用它。
最佳答案
如果您的查询是:
,您可以使用 MySQLi 和带有占位符的准备好的语句:$sql = "SELECT * FROM tablename WHERE description='".$productDesctiption."'";
您可以将其转换为:
$sql = "SELECT * FROM tablename WHERE description=?";
然后使用 mysqli 准备语句并执行它:
$conn = new mysqli($servername, $username, $password, $dbname);
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $ProductDescription);
$ProductDescription=$_GET["ProductDescription"];
$stmt->execute();
...retrieve your data...
$stmt->close();
$conn->close();
看看这个 documentation .
关于php - 适合替换 mysql_real_escape_string($_GET ["variable"])?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34617227/