【发布时间】:2014-04-02 09:01:59
【问题描述】:
我正在尝试显示最后插入的记录。目前我正在尝试为最后插入的 id 回显我的绑定值。
$stmt= $dbh->prepare("INSERT INTO child (FName, LName, Age, Sex, Allergies) values (:FName, :LName, :Age, :Sex,:Allergies)");
$stmt->bindValue(':FName', $_POST['FName'], PDO::PARAM_STR);
$stmt->bindValue(':LName', $_POST['LName'], PDO::PARAM_STR);
$stmt->bindValue(':Age', $_POST['age'], PDO::PARAM_STR);
$stmt->bindValue(':Sex', $_POST['sex'], PDO::PARAM_STR);
$stmt->bindValue(':Allergies', $_POST['allergies'], PDO::PARAM_STR);
$add1=$stmt->execute();
$newchild=$dbh->lastInsertid();
以上只是创建记录
$stmt=$dbh->prepare("INSERT INTO pcdetails (childID, parentID) values ( :newchild, :newparent)");
$stmt->bindValue(':newchild', $newchild, PDO::PARAM_STR);
我将新的子记录绑定到 $newchild 的位置。我只使用最后一个插入 id 来制作一个单独的表,一旦插入子记录和父记录,它将自动生成。这一切都正常工作......没有任何错误。
现在我的问题是:我尝试使用相同的 bindValue 来回显插入到数据库中的过去记录。
一直以来,我都在使用会显示所有记录的查询:
$sql = "select child.childid, FName, LName, age, sex, allergies from child ORDER BY LName, FName
但我只想显示最后一条记录。
我尝试了以下方法:
$sql = "select child.childid, FName, LName, age, sex, allergies from child ORDER BY LName, FName where childid = "<?php echo $newchild; ?>"";
但我收到错误“解析错误:语法错误,意外'?'”。我不确定为什么会出现此错误。
任何帮助都会很棒。
谢谢。
【问题讨论】:
-
这是一个语法错误。对于那些和理解一般 PHP 错误消息的帮助,请先参考以下参考问题:Reference - What does this error mean in PHP?
-
将
prepare和bind与$newchild字段一起使用,方法与前面的代码相同。
标签: php mysql sql lastinsertid