Php PDO多个执行问题

Php PDO多个执行问题,php,mysql,pdo,Php,Mysql,Pdo,我在一个处理页面上有两个插入。第一个工作顺利。第二个甚至不会激活。我甚至试着输入一个PDO查询,看看它是否有效,但仍然没有结果 $cpinsert = $db->prepare('insert into Chatposts values (0, :chatid, :name, :url, :text, now(), :ipaddress, 0)'); $cpinsert -> bindParam(':chatid', $chatroomid, PDO

我在一个处理页面上有两个插入。第一个工作顺利。第二个甚至不会激活。我甚至试着输入一个PDO查询,看看它是否有效,但仍然没有结果

        $cpinsert = $db->prepare('insert into Chatposts values (0, :chatid, :name, :url, :text, now(), :ipaddress, 0)');

        $cpinsert -> bindParam(':chatid', $chatroomid, PDO::PARAM_INT);
        $cpinsert -> bindParam(':name', $name, PDO::PARAM_STR);
        $cpinsert -> bindParam(':url', $url, PDO::PARAM_STR);
        $cpinsert -> bindParam(':text', $text, PDO::PARAM_STR);
        $cpinsert -> bindParam(':ipaddress', $ipaddress, PDO::PARAM_STR);


            $cpinsert -> execute();

        // Needs an error checker
        $cpid = $cpinsert ->lastInsertID();
        $cpinsert->closeCursor();
^这很好,尽管我不知道最后一个insertid,因为我无法测试它

\不管我怎么做,里面的东西都不会执行。有东西阻止了那里的任何东西执行,或者我没有正确地关闭上面的连接

    // Targets Insert
    //if (isset($target)):
    $query = "insert into Targets values (9,'rommel')";
    $db->query($query);
        $targetinsert = $db->prepare('insert into Targets values (:cpid,:tname)');


        foreach ($target as $tname):
            $targetinsert -> bindParam(':cpid', $cpid, PDO::PARAM_INT);
            $targetinsert -> bindParam(':tname', $tname, PDO::PARAM_STR);
        endforeach; 


            $targetinsert -> execute();

    //endif;

我已经尝试了我所知道的一切,但没有运气。很可能我犯了一个小错误,因为我是PDO的新手。当我添加Closecursor时,它似乎也没有做任何事情

您说过需要执行许多插入,但出于某种原因,您只执行一次查询


另外,请从代码中删除这些try..catch内容-它们是您不知道发生了什么问题的原因

我不得不重新创建页面的半功能模型,但我发现了问题,它是lastinsertid()。我在PDO类上应用PDO语句类

之前:

 $cpid = $cpinsert->lastInsertID();
之后:

 $cpid = $db->lastInsertID();

我只需要调用数据库,而不是用那行代码来准备

我甚至不能让它执行一次,所以一旦它提交查询,我就会担心重复。我已经看到很多关于stackoverflow的代码,在执行过程中使用了try-catch,有没有更好的方法?还删除了代码中的try-catch块,但仍然没有提交任何内容。请确保您的PDO配置为,这样您就可以看到出现了什么问题。然后想想你在做什么。您只调用了一次
execute
,因此它最多只能执行一次
INSERT-INTO-Targets-VALUES(..)
并插入一行。它是。问题在于,这是在一个处理页面上,该页面试图以多种方式将您踢开,因此看到错误本身就是一个挑战。我希望这将是一个简单的编码错误,可以看到视觉。是的,我意识到了执行问题,我在测试它是否第一次工作时就在处理它,但它没有。所以问题是你真的不知道如何调试你的代码?一行一行地安装并逐步检查代码。我现在知道如何调试的唯一方法是错误消息,if检查变量/结果,并注释掉代码行=/。如果有更好的办法,我就去试试。我明天要去看看,今天晚些时候,谢谢。