我有一个SQL更新语句,我从PHP程序中运行。它准备好然后执行。当我在PHP中运行它时,它报告违反约束。当我从命令行运行完全相同的语句时(我通过dBug()获取),它的工作原理没有错误。这听起来不可能,所以我一直在寻找这些陈述之间的差异。我能看到的唯一的事情是,当我用一系列参数执行它时,它们都显示为字符,当有些应该是整数时。在代码中运行的SQL与MySQL命令行有什么区别吗?
任何建议去哪里看?
这里是PHP版本(我调整了一点,以使其更清晰):
$st =& $db->prepare("update tbl set uid=?, frequency=? other_id=? where id=$id");
$values = array($uid, $freq, $other_id);
$res =& $db->execute($st, $values);
new dBug ($res);
了解如何在PHP代码中构建SQL字符串可能有助于发现问题。 – webbiedave 2010-04-08 16:57:38
你用什么来准备SQL?根据你的参数编写声明时可能会有差异。 – 2010-04-08 17:00:34