-1

我在处理页面上有两个插入。第一个工作顺利。第二个甚至不会激活。我什至尝试放置一个 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();

^ 这很好用,虽然我不知道 lastinsertid 因为我无法测试它。

\V/ 无论我尝试什么,都不会执行任何内容。有些东西阻止了那里的任何东西执行,或者我没有正确关闭上面的连接。

    // 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 时,它似乎也没有做任何事情。

4

2 回答 2

0

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

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

于 2013-03-16T08:02:46.310 回答
-2

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

前:

 $cpid = $cpinsert->lastInsertID();

后:

 $cpid = $db->lastInsertID();

我只需要调用数据库而不是使用那行代码进行准备。

于 2013-03-16T08:40:08.443 回答