PDO准备好的声明不会执行

时间:2013-02-02 02:02:29

标签: php mysql pdo

好的,我很沮丧,我不知道这个问题是什么。我觉得这样一个糟糕的程序员。我正在尝试更新我的数据库,我知道我正在尝试更新的表存在。从字面上看,我知道这个查询是准确的,但我不知道为什么它不起作用。第一个mysql语句执行但第二个不执行。这是我的代码。

$Statement = $Database->prepare("INSERT INTO table1 (tbl2id, col, col2) VALUES (?, ?, ?); UPDATE table2 SET this = ? WHERE id = ?");
$Statement->execute(array($table2id, $col, $col2, 1, $table2id));

所以我正在尝试设置数据库,以便它们有点联系。顺便说一句,我编写了所有列名。我不知道它是否有助于安全,但我不喜欢在公共场合发布这些内容。无论如何,'this'列默认为0,如果为1则表示用户已响应。因此'this'设置为tinyint,默认值为0.

我并不是要问一个愚蠢的问题或任何事情,我讨厌承认,但我真的无法弄明白。也许有一些我不知道的PDO语句。我也试过运行两个单独的执行,它仍然不会这样做。而且我知道有人会说我没有更新正确的桌子或其他东西。但我发誓这是正确的,我已经检查了至少10次。

非常感谢你。我喜欢自己解决问题,但我不能再浪费时间了。

1 个答案:

答案 0 :(得分:0)

有一件事真的属于你的编程技巧 程序员必须首先查找错误消息 程序员不必只是坐着看代码,而是询问他们的程序发生了什么
因此,它必须是您首要关注的问题 - “我怎样才能收到错误消息?” 看,它本质上是不同的:不是“我的代码出了什么问题?”但“如何得到错误?”。

您确定ERRMODE_EXCEPTION已设置并且您可以看到发生的所有错误吗?难道你没有一个带有空catch()的愚蠢异常处理程序吗?您是否启用了display_errors(或者您是否已检查过日志)? 你能看到一个故意的错误 - 像“blah foobar nonsense”这样的查询会引发一个吗?

如果没有 - 请注意错误报告事宜 如果是这样 - 那么,是时候检查一些程序流逻辑和愚蠢的类似错误的错误(比如在检查另一个数据库时插入一个数据库等)。

是的,准备/执行不支持多个查询,你必须在不同的调用中进行调用