Php Bindparam不适用于我的分页脚本
我找到了脚本,因为它可能容易受到sql注入的攻击,所以我尝试使用bindparamstart\u limit变量,但无法工作。这是我的密码:Php Bindparam不适用于我的分页脚本,php,mysql,Php,Mysql,我找到了脚本,因为它可能容易受到sql注入的攻击,所以我尝试使用bindparamstart\u limit变量,但无法工作。这是我的密码: include(“include/config.php”); include(“include/functions.php”); $query=$connect->prepare(“从教程中选择*); $query->execute(); $total_results=$query->rowCount(); $total_pages=ceil($tota
include(“include/config.php”);
include(“include/functions.php”);
$query=$connect->prepare(“从教程中选择*);
$query->execute();
$total_results=$query->rowCount();
$total_pages=ceil($total_results/$paglimit);
如果(!isset($\u GET[“page”])){
$page=1;
$\u GET[“page”]=1;
}否则{
$page=$_GET[“page”];
}
$starting_limit=($page-1)*$PAGFLIMIT;
?>
1/我认为这不是一个好的synthax:
$query = $connect->prepare("SELECT * FROM tutorials
ORDER BY id DESC LIMIT :starting_limit , $paglimit");
你可能是说:
$query = $connect->prepare("SELECT * FROM tutorials
ORDER BY id DESC LIMIT $paglimit OFFSET :starting_limit");
2/您必须指定PDO语句::bindParam
$data\u type
参数,默认情况下该参数为PDO::PARAM\u STR
()
在您的情况下,start\u limit
应具有类型PDO::PARAM\u INT
更改:
$query->bindParam(":starting_limit", $starting_limit);
致:
现在可以用了,谢谢。这不是我第一次使用bindparam,而且我总是在没有PDO::PARAM_INT的情况下使用它。我必须阅读php中包含文档的链接,才能理解确切的原因。
$query->bindParam(":starting_limit", $starting_limit);
$query->bindParam(":starting_limit", $starting_limit, PDO::PARAM_INT);