php - 适合替换 mysql_real_escape_string($_GET ["variable"])?

标签 php mysql

我运行一个具有各种产品页面的网站,其数据使用以下方式调用:

$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/

相关文章:

mysql - 在 hdfs 中进行选择的最佳方法?

php - 快速使用数组最近的元素来确定新元素是否唯一

php - 没有 Javascript 的 CodeIgniter 表单中的两个不同提交按钮

php - WordPress REST API 响应时间慢

PHP 无法在新的 LAMP 服务器上运行

php - 使用 php 将 html 连接到 mysql - 全新的 php

mysql - 如何在 mysql 表中创建第二个主键/复合键

php - 如何增加PHPExcel中的单元格字符长度?

php - 使用 PHP 通过 DESC 进行 PDO 排序

mysql - 检查两个日期之间的日期或sql中的NULL