-1

処理中のページに 2 つの挿入があります。最初は問題なく動作します。2つ目はアクティブ化すらしません。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 に答える