php - LastInsertId PHP

标签 php mysql sql lastinsertid

<分区>

我正在尝试显示最后插入的记录。目前我正在尝试回显我最后插入的 id 的绑定(bind)值。

$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);

是我将新子记录绑定(bind)到 $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 标记,因为您已经在 PHP 标记中。此外,您的 ORDER BY 子句需要位于 WHERE 子句之后

$sql = "select child.childid, FName, LName, age, sex, allergies 
           FROM child 
           WHERE childid = $newchild
           ORDER BY LName, FName";

关于php - LastInsertId PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22806397/

相关文章:

sql - Postgres 全外连接 headscratcher

mysql - 选择在 4 列中的 1 列中包含值的数据

php - 在构造函数之后设置类常量?

php - iOS 推送通知我做错了什么?

php - 检查字符串是否包含 youtube URL

php - laravel 5 Controller 中的 CSV 导出

Mysql,将文件位置更改为本地网络中的远程

PHP/MySQL 基于数组内容的平均值

Mysql show processlist 列出许多进程sleep and info = null?

mysql - SQL 中基于 bool 实体的关系(图 TableView )