0

PHPでsqlite_last_insert_rowidを使用する際に問題が発生しました。コード:

$database = new SQLiteDatabase('example.db');
$sql_1 = "INSERT INTO ex1(test1, test2) VALUES ('$test1','$test2')";
$database->queryExec($sql_1);

$ex1_ID = sqlite_last_insert_rowid($database);

$sql_2 = "INSERT INTO ex2 (ex1_ID, fname, lname) values ('$ex1_ID','$fname','$lname');";
$database->queryExec($sql);

ex1テーブルからテーブルex2へのIDをex1_IDに保存したい

CREATE TABLE ex1 ( 
ID INTEGER PRIMARY KEY,
test1 LONGTEXT,
test2 LONGTEXT
);

CREATE TABLE ex2 ( 
ID INTEGER  PRIMARY KEY,
ex1_ID INTEGER,
fname LONGTEXT,
lname LONGTEXT,
FOREIGN KEY ( ex1_ID ) REFERENCES ex1 ( ID )
);

完全なコード:

$database = new SQLiteDatabase('example.db');
    for ($i = 0; $i < 10; $i++) {
        $test1 = "";
        $test2 = "";
        $lenght = rand(300, 400);
        for ($x = 0; $x < $lenght; $x++) {
            $test1 .= rand(0, 9);
            $test2 .= rand(0, 9);
        }
        $sql_1 = "INSERT INTO ex1 (test1,test2) VALUES ('$test1','$test2')";
        $database->queryExec($sql_1);
        $ex1_ID = sqlite_last_insert_rowid($database);

        for ($j = 0; $j < 3; $j++) {
            for ($x = 0; $x < $lenght; $x++) {
                $test1 .= rand(0, 9);
                $test2 .= rand(0, 9);
            }
            $sql_2 = "INSERT INTO ex2 (ex1_ID, fname, lname) values ('$ex1_ID','$test1','$test2');";
            $database->queryExec($sql_2);
        }
    }

ex1テーブルから最後のIDを取得できません。助けてください!

4

1 に答える 1

3

より多くの情報が得られたので更新しました。

オブジェクトモデルの方法を使用してDBをクエリしているので、試してみましたか

$lastid = $database->lastInsertRowid();

于 2012-10-04T15:29:36.140 に答える