PDO分页语法违规错误

问题描述:

有人可以检查下面我的脚本有什么问题。PDO分页语法违规错误

我收到“PHP致命错误:带有消息'SQLSTATE [42000]的未捕获异常'PDOException':语法错误或访问冲突:1064您的SQL语法中有错误;请检查与您的MySQL相对应的手册服务器版本使用附近的“” 0' 正确的语法,'1”第1' 行”

$limit = 1; 
$p=$_GET['p']=="" ? 1:$_GET['p']; 

$start=($p-1)*$limit; 


$sa_stmt = $db->prepare('SELECT * FROM members WHERE referral=:username ORDER BY memberID LIMIT :start, :limit'); 


$sa_stmt->execute(array(
       ':username' => $_SESSION['username'], 
       ':start' => $start, 
       ':limit' => $limit 
      )); 

while($info = $sa_stmt->fetch(PDO::FETCH_ASSOC)){ 
$norec = "yes"; 
echo ''.$info["username"] . ' '; } 


$count=$db->prepare("SELECT COUNT(memberID) FROM members WHERE referral=:username ORDER BY memberID"); 
$count->execute(array(':username' => $_SESSION['username'])); 
$count=$count->fetchColumn(); 

$countP=(ceil($count/$limit)) + 1; 
$tW=($countP*50) + $countP; 
echo"<center style='overflow-x:auto;margin-top:10px;padding-bottom:10px;'>"; 
echo"<div style='width:".$tW."px'>"; 
for($i=1;$i<$countP;$i++){ 
    $isC=$i==$_GET['p'] ? "b-green":""; 
    echo "<a href='?p=$i'><button class='pgbutton $isC'>$i</button></a>"; 
} 
echo"</div>"; 
echo"</center>"; 
+0

请改变你的问题的标题更相关的事情... – Dekel

+0

LIMIT:启动,:限制此操作将为您的查询添加单引号并导致语法错误。用PDO :: PARAM_INT投射到一个整数 – user3606329

+0

非常感谢,它已经工作。 –

$sa_stmt = $db->prepare('SELECT * FROM members WHERE referral=:username ORDER BY memberID LIMIT :start, :limit'); 



    $sa_stmt->bindValue(":username", $_SESSION['username'], PDO::PARAM_INT); 
     $sa_stmt->bindValue(":start", $start, PDO::PARAM_INT); 
     $sa_stmt->bindValue(":limit", $limit, PDO::PARAM_INT); 
     $sa_stmt->execute(); 

    while($info = $sa_stmt->fetch(PDO::FETCH_ASSOC)){ 
    $norec = "yes"; 
    echo ''.$info["username"] . ' '; }