0

好吧,我很沮丧,我不知道这个问题是什么。我觉得自己是一个糟糕的程序员。我正在尝试更新我的数据库,并且我知道我要更新的表存在。从字面上看,我知道这个查询是准确的,但我不知道为什么它不起作用。第一个 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 次。

太感谢了。我喜欢自己解决问题,但我不能再浪费时间在这上面了。

4

1 回答 1

0

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

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

如果没有 - 处理错误报告问题。
如果是这样 - 那么,是时候检查您的一些程序流程逻辑和愚蠢的拼写错误(例如在检查另一个数据库时插入一个数据库等)。

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

于 2013-02-02T05:36:23.677 回答