PDO抛出错误

时间:2012-09-12 16:02:31

标签: php pdo

我在寻找以下PDO SELECT语句中的错误:

$get_allocation_id = "
  SELECT id
  FROM form1_group_info 
  WHERE
   group_name=:group_name, 
   group_leaders=:group_leaders, 
   soas_short_cd=:soas_short_cd, 
   phone_number=:phone_number, 
   email=:email 
  LIMIT 1";
$alloc_id_stmt = $dbh->prepare($get_allocation_id);
$alloc_id_stmt->bindParam(":group_name", $params['group_name']);
$alloc_id_stmt->bindParam(":date_submitted", $params['date_submitted']);
$alloc_id_stmt->bindParam(":group_leaders", $params['group_leaders']);
$alloc_id_stmt->bindParam(":soas_short_cd", $params['soas_short_cd']);
$alloc_id_stmt->bindParam(":phone_number", $params['phone_number']);
$alloc_id_stmt->bindParam(":email", $params['email']);
$alloc_id_stmt->execute();

以上代码位于一个PHP文件中,该文件由提供$ params的ajax请求调用。

非常感谢任何建议。

2 个答案:

答案 0 :(得分:2)

如果你包含错误会有所帮助。那就是说,我认为问题是:

$alloc_id_stmt->bindParam(":date_submitted", $params['date_submitted']);

您在查询中没有使用该参数。

答案 1 :(得分:2)

您的SQL语法无效; WHERE子句条件必须用逻辑AND(或OR分隔,但我们假设您在本案中起诉AND),但您已用逗号分隔它们:< / p>

  SELECT id
  FROM form1_group_info 
  WHERE
   group_name=:group_name
   /* Insert logical AND */
   AND group_leaders=:group_leaders 
   AND soas_short_cd=:soas_short_cd 
   AND phone_number=:phone_number
   AND email=:email 
  LIMIT 1;

如上所述,您还绑定了一个未在查询中使用的参数。也许你的意思是:

  SELECT id
  FROM form1_group_info 
  WHERE
   group_name=:group_name 
   AND group_leaders=:group_leaders 
   AND soas_short_cd=:soas_short_cd 
   AND phone_number=:phone_number
   AND email=:email
   /* forgot this one... */
   AND date_submitted=:date_submitted
  LIMIT 1;