什么可能导致这个PHP - MySQL绑定错误?

时间:2010-11-22 16:51:04

标签: php

  

您的SQL语法有错误;   检查对应的手册   您的MySQL服务器版本   正确的语法在“?,?”附近使用在线   1

之前我从未遇到过代码问题所以我猜它必须与MySQL版本有关(MySQL 4.1.25& PHP 5)。

以下是我正在使用的代码:

  $sql = "a long sql select statement... ?,?";

  if ($stmt = $mysqli->prepare($sql)) 
    {
        // it never even gets here
        $stmt->bind_param('ii',$offset,$limit);
        ... 
    }
  else
    {   
        echo($mysqli->error);
    }

2 个答案:

答案 0 :(得分:0)

您无法在LIMIT x,y中绑定x和y,因为只能绑定数据。

作为替代方案,您可以直接在代码中添加$ offset和$ limit(验证后)并使用以下内容而不绑定$ offset和$ limit:

$sql = "a long sql select statement... $offset,$limit";

答案 1 :(得分:0)

我不确定接受的答案是否正确。我刚试过MySQL5.0.7和PHP 5.3.3。它没有问题。

最近这台服务器上是否有PHP< 5.3到5.3+的更新?

如果是,这可能会导致问题(不清楚,如何传递参数):
PHP 5.3+要求通过引用传递bind_param()的参数,在早期版本中这不是必需的。