Использование LAST_INSERT_ID () над двумя функциями, которые обе используют execute ();

Одна кнопка отправки. Два стола. При нажатии кнопки «Отправить» создается маркер, а также его значения lng и lat. Эта информация добавлена ​​в таблицу маркеров.

Идентификатор маркера — это FK в таблице представлений. Документация для LAST_INSERT_ID(); говорит: Сгенерированный идентификатор поддерживается на сервере для каждого подключения. Я думаю, что каждое выполнение сбрасывает это, но не уверен.

В настоящее время он вставляет данные в таблицу маркеров, но ничего не вносит в таблицу представлений. У меня есть проверка, чтобы убедиться, что все поля имеют содержимое, если не это недопустимая форма и отображается ошибка, то же самое для соединения с БД, но в данный момент она выводит меня на страницу успеха.

Этот SQL-запрос прямо в базу данных MySQL дает желаемый результат:

INSERT INTO markers VALUES (NULL, 53.645792, -1.785035);

INSERT INTO submissions (submission_id, marker_id, title, info, image)
VALUES (1, LAST_INSERT_ID(), "this is a title", "info", "image");

Мой код в моих файлах, однако, не …

Модель:

function insertSubmissionMarker($conn,$lat,$lng)
{
$query="INSERT INTO markers VALUES (NULL, :lat, :lng)";
$stmt=$conn->prepare($query);
$stmt->bindValue(':lat', $lat);
$stmt->bindValue(':lng', $lng);
$affected_rows = $stmt->execute();
if($affected_rows==1)
{
return true;
}else{
return false;
}
}

function insertSubmissionContent($conn,$marker_id,$title,$info,$image)
{
$query="INSERT INTO submissions VALUES (NULL, LAST_INSERT_ID(), :title, :info, :fileToUpload)";
$stmt=$conn->prepare($query);
$stmt->bindValue(':title', $title);
$stmt->bindValue(':info', $info);
$stmt->bindValue(':fileToUpload', $image);
$affected_rows = $stmt->execute();
if($affected_rows==1)
{
return true;
}else{
return false;
}
}

function addToMap ($conn,$lat,$lng,$title,$info,$image){
$x = insertSubmissionMarker ($conn,$lat,$lng);
$y = insertSubmissionContent ($conn,$title,$info,$image);
if($x && $y = true)
{
return true;
}else{
return false;
}

}

контроллер:

$conn=getConn();
$success=addToMap($conn,$title,$info,$lat,$lng,$image);
$conn=NULL; //close the connection
if($success)
{
include("views/add-map-confirm-view.php");

}else
{
$errorMsgs[]="Problem inserting data into the database";
include("views/add-map-error-view.php");
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]