保存到表格php mysql

时间:2014-11-28 23:34:44

标签: php sql database

我有2个表,我正在尝试同时将数据保存到两个表中。表“lyricsAuthor”包含PK(id),表“test”包含FK(testid)。 它现在保存到两个表,但“testid”保存0,而不是“lyricsAuthor”中的最后一个“id”。

我看不出我错过了什么? 我目前的代码是这样的:

        $pdo = Database::connect(); 

        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $testid = "SELECT id FROM lyricsAuthor ORDER BY id DESC LIMIT 1";               
        $sql = "INSERT INTO test (testid,testname) values(?, 'John Doe')";
        $q = $pdo->prepare($sql);
        $q->execute(array($testid));

        Database::disconnect();
        header("Location: lyrics.php");

1 个答案:

答案 0 :(得分:1)

使用mysql_insert_id代替SELECT id...获取当前脚本上下文中最近插入的行的ID,否则如果多个访问者同时加载您的网页,则会出现并发问题(数据库中的细微延迟将导致ID不匹配。

在PDO中,该方法在MySQLi $link->lastInsertId();

中为$link->insert_id;