将参数作为整数传递给限制

问题描述 投票:1回答:1

我一直在我的PHP应用程序中使用参数进行MySQL查询。

public function getAllPostsForCategoryFrom($CategoryID, $StartPos)
{
    $sql = "SELECT * FROM Post WHERE CategoryID = :CategoryID ORDER BY PostID DESC LIMIT :StartPos, 5";
    $query = $this->db->prepare($sql);
    $parameters = array(':CategoryID' => $CategoryID, ':StartPos' => $StartPos);
    $query->execute($parameters);
    return $query->fetchAll();
}

在上面的函数中,似乎将$ StartPos作为字符串抛出了错误

错误代码:1064。您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的“ 0”,“ 5”附近使用]

我也尝试将传递的值转换为整数,但是,MySQL似乎不喜欢在限制范围内进行转换/转换。

CAST(:StartPos AS UNSIGNED);

我知道这样的绑定参数:

$sql = SELECT * FROM tbl_news ORDER BY date DESC LIMIT :start, :rows";
$q = $db->prepare($sql);
$q->bindParam(':start', $start, PDO::PARAM_INT);
$q->bindParam(':rows',$rows, PDO::PARAM_INT);

但是,我不确定如何使用我一直在使用的参数。我将不胜感激任何有关如何获取作为整数而不是字符串传递值的指针!

**编辑:**我应该提到这是AWS上与MySQL兼容的Aurora

我一直在我的PHP应用程序中使用参数进行MySQL查询。公共函数getAllPostsForCategoryFrom($ CategoryID,$ StartPos){$ sql =“ SELECT * FROM Post WHERE CategoryID =:CategoryID ...

php mysql pdo
1个回答
0
投票

例如,您将使用问题末尾显示的代码:

© www.soinside.com 2019 - 2024. All rights reserved.