PHP PDO无法正确绑定

时间:2016-02-03 08:06:05

标签: php mysql pdo

$conn = getConn();
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "select * from posts where fk_user_id in (select id_user_1 from contacts where id_user_2=:_id) or (select id_user_2 from contacts where id_user_1=:_id) or :_id order by date desc limit 15 offset :_offset";
$stmt = $conn->prepare($sql);
$stmt->bindParam('_id', $id);
$o = "0";
$stmt->bindParam('_offset', $o);
  

连接失败:SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中出错;检查与MySQL服务器版本对应的手册,以便在第1行“0”附近使用正确的语法

由于某种原因,它没有正确绑定param;如果我在SQL中手动输入0,一切正常。

修复:我通过添加PDO :: PARAM_INT来修复。 $ stmt-> bindParam(':_ offset',$ offset,PDO :: PARAM_INT);

1 个答案:

答案 0 :(得分:0)

您错误地绑定了参数。它应该是:

$stmt->bindParam(':_id', $id);
$offset = 0;
$stmt->bindParam(':_offset', $offset, PDO::PARAM_INT);