繁体   English   中英

是什么原因导致此PHP-MySQL绑定错误?

[英]What could be causing this PHP - MySQL bind error?

您的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);
    }

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

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

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

我不确定接受的答案是否正确。 我刚刚尝试使用MySQL5.0.7和PHP 5.3.3。 它可以正常工作。

该服务器上最近有从PHP <5.3到5.3+的更新吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM