您的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);
}
答案 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()的参数,在早期版本中这不是必需的。