LastInsertId PHP

Я пытаюсь получить последнюю вставленную запись для отображения. В данный момент я пытаюсь повторить мое привязанное значение для последнего вставленного идентификатора.

$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. Я использую только последний идентификатор вставки для отдельной таблицы, которую я делаю, которая будет автоматически генерироваться после вставки дочерней и родительской записи. Это все работает правильно... Не получаю никаких ошибок.

Теперь к моей проблеме: я пытаюсь использовать тот же 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; ?>"";

Но я получаю ошибку "Ошибка разбора: синтаксическая ошибка, неожиданное '?'". Я не уверен, почему я получаю эту ошибку.

Любая помощь будет отличной.

Благодарю.

1 ответ

Решение

Удалите теги PHP, как вы уже внутри тегов PHP. Кроме того, ваше предложение ORDER BY должно идти после предложения WHERE

$sql = "select child.childid, FName, LName, age, sex, allergies 
           FROM child 
           WHERE childid = $newchild
           ORDER BY LName, FName";
Другие вопросы по тегам