使用 FILTER_SANITIZE_NUMBER_INT 后在查询中使用 MySQL LIMIT


Using MySQL LIMIT in query after using FILTER_SANITIZE_NUMBER_INT

我对这个有点陌生,我正在建立我的第一个网站。只是为了好玩,了解一切是如何运作的。

我有这个奇怪的问题,我不知道该怎么做:

$query = "SELECT * from artikel inner join categorie on artikel.artikelnummer = categorie.artikelnummer
inner join categorienaam on categorie.categorienummer = categorienaam.categorienummer
left join bestandsnaam on artikel.artikelnummer = bestandsnaam.artikelnummer
where categorie.categorienummer = ".filter_var($_GET['categorienummer'], FILTER_SANITIZE_NUMBER_INT)." LIMIT $first_product_shown, $products_per_page";
while($row = mysqli_fetch_assoc($query))
{
    do stuff
}

当我不使用限制时,它可以工作。但我不知道如何让这个限制起作用。例如,这个工作:

$query = mysqli_query($conn, "SELECT * FROM artikel LEFT JOIN bestandsnaam ON artikel.artikelnummer = bestandsnaam.artikelnummer LIMIT $first_product_shown, $products_per_page");
while($row = mysqli_fetch_assoc($query))
{
    do stuff
}

我认为我的代码失败是因为同时使用了"FILTER_SANITIZED_NUMBER_INT"和"LIMIT"。也许有人知道问题是什么?我需要这个来将我网站上的产品拆分为页面。

提前感谢!

您的代码失败,因为您似乎缺少第一个代码块中的查询调用。尝试回显 mysqli 错误

在第二个块中,

您直接在查询中调用了 SQL,但没有在第一个块中调用,也没有添加查询。