pdo参数号无效

时间:2009-12-07 17:50:21

标签: mysql select pdo execute

我的问题如下

Y有两个从函数内部调用的函数(方法)

如果第一个函数的结果为TRUE,则第二个函数运行select和update查询。

第二个函数使用query($ sql)命令运行select 更新查询使用:

$stmt = $db->prepare($sql);
 $stmt->execute(arraywithvalues);

分开地,两个函数都可以完美地工作,但是当两个函数都被调用时都不能 换句话说,到第二个函数需要执行时,它将失败。 如果我将第一个函数注释掉,它会执行得很好吗?

修改

更新查询

$tt = time() - 3600;
$w =array(NULL, NULL, $passw_new, $passw_key_new, $user_id);
$sql ="UPDATE table SET new_passw_requested =?";
$sql .=" WHERE passw_key_new='b02cdf33e46923de5a097c594e846764'";
$sql .=" AND UNIX_TIMESTAMP(new_passw_requested) >= $tt";
$sql .= " AND id=?";

实际功能是。 1)can_reset_passw()运行选择查询,2)reset_passw()执行一次选择然后执行更新。 如上所述,这两个功能都可以独立工作。

错误:找到一个

SELECT * FROM table WHERE id = :id AND actief = :actief
Array ( [0] => SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens ) 

所以有些东西搞乱了

我尝试设置$ stmt = NULL来清除资源,但这没有用。 不知怎的,第一个选择的令牌仍在记忆中,我想

我该怎么做才能解决这个问题?

解决

最后一个错误让我走上了正确的道路。 dbabstraction类在内存中保存de条件

谢谢,理查德

1 个答案:

答案 0 :(得分:0)

(这是由OP和问题中编辑的解决方案在一段时间前解决的,所以它仍然在未答复的队列中。复制在这里作为社区维基的答案以反映状态,虽然答案很短。如果有人可以让答案更加连贯,他们可以在这里编辑。请参阅Question with no answers, but issue solved in the comments (or extended in chat)

OP写道:

  

最后一个错误让我走上了正确的道路。 dbabstraction类在内存中持有de条件