通过php mysql保存乘法表
我有两个表,我试图同时将数据保存到这两个表中。。表“lyricsAuthor”包含PK(id),表“test”包含FK(testid)。 它现在可以保存到两个表,但“testid”保存的是0,而不是“lyricsAuthor”的最后一个“id” 我看不出我错过了什么?? 我当前的代码如下:通过php mysql保存乘法表,php,sql,database,Php,Sql,Database,我有两个表,我试图同时将数据保存到这两个表中。。表“lyricsAuthor”包含PK(id),表“test”包含FK(testid)。 它现在可以保存到两个表,但“testid”保存的是0,而不是“lyricsAuthor”的最后一个“id” 我看不出我错过了什么?? 我当前的代码如下: $pdo = Database::connect(); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCE
$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");
使用
mysql\u insert\u id
而不是SELECT id..
获取当前脚本上下文中最近插入的行的id,否则如果多个访问者同时加载您的网页,您将出现并发问题(数据库中的细微延迟将导致id不匹配)
在PDO中,方法是
$link->lastInsertId()代码>在MySQLi中是$link->insert\u id代码>在execute中输入的值没有意义,它仍然是一个文本查询字符串,没有其他内容。您需要先获取select,然后才能从中获取任何值。谢谢您的回答。。我对php很陌生。也许这是个愚蠢的问题,但我如何在代码中使用它呢?或者如何插入?@Axl我建议查看文档,因为它包含使用示例。