$sql = "INSERT INTO book (bookname) values('kkkkkkkkk');
SET @bookid = LAST_INSERT_ID();
INSERT INTO paper (papername) values('hhhhhhh');
SET @paperid = LAST_INSERT_ID();
UPDATE author SET bookid = @bookid, paperid = @paperid WHERE id = 11;
SELECT @bookid as bookid, @paperid as paperid FROM DUAL;"
$stmt = $pdoConnect->prepare($sql);
$stmt->execute();
$numofnewParn =$stmt->rowCount();
if($numofnewParn>0){
$newParentDt = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($newParentDt);
}
我有一组插入,LAST_INSERT_ID分配给各个参数。
稍后,使用参数更新表。
直到CCD_ 1不是问题。
我的问题是,我可以通过添加SELECT来继续查询,并像$stmt->fetch(PDO::FETCH_ASSOC)
一样获取数据吗?
还是说这没有道理?如果是,是否有任何来源?
因为上面的代码不会打印出来。
您需要使用PDOStatement::nextRowset
,请参阅此处,以转到多语句中的下一个查询结果。。。然而,更干净的设置是将其分解为单语句查询,并使用PHP变量保存bookid和paperid值:
<?php
$sql = "INSERT INTO book (bookname) values('kkkkkkkkk');"
$stmt = $pdoConnect->prepare($sql);
$stmt->execute();
$bookid = $pdoConnect->lastInsertId();
$sql = "INSERT INTO paper (papername) values('hhhhhhh');"
$stmt = $pdoConnect->prepare($sql);
$stmt->execute();
$paperID = $pdoConnect->lastInsertId();
$sql = "UPDATE author SET bookid = $bookid, paperid = $paperid WHERE id = 11;"
$stmt = $pdoConnect->prepare($sql);
$stmt->execute();