$last_insert_id не определен, но запрос извлекает данныеPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 $last_insert_id не определен, но запрос извлекает данные

Сообщение Anonymous »

У меня возникла странная проблема: написано, что $last_insert_id не определен, но результат запроса извлекает данные.
Похоже, переменные передаются между validate.php и email.php; и email.php в index.php. Похоже, проблема может быть в заголовке () в validate.php, но я не знаю, как ее исправить. Я предполагаю это потому, что изначально запрос Last_id и переменные строки находились перед заголовком (), а в электронной почте все данные были пустыми.
Перемещение запроса Last_id после заголовка () в начало email.php, адрес электронной почты и правильные данные. Но все же опубликовано:
Ошибка опубликована:

Предупреждение: неопределенная переменная $last_inserted_id в email.php в строке.. .
SELECT * FROM event_table WHERE event_id =
Неустранимая ошибка: необработанное исключение mysqli_sql_Exception: у вас есть ошибка в синтаксисе
SQL; проверьте руководство, соответствующее версии вашего сервера MySQL
, чтобы найти правильный синтаксис для использования рядом с '' в строке 1 в email.php:...
Трассировка стека: #0 email.php(... ): mysqli->query('SELECT * FROM e...') #1
index.php(9): require_once('...') #2 {main}, добавленный в email.php onстрока ...

НО запрос выбора MySQL работает (в email.php) в том смысле, что он получает только что вставленные данные (даже если идентификатор пуст); Я знаю это, потому что эти данные отправляются по электронной почте отправителю и администратору.
Затем я устал, как показано ниже в email.php "if (isset($last_inserted_id)){ }" вокруг sql select и mail(), получая неопределенное значение для echo $mail_Admin_msg echo $mail_Member_msg (в index.php).
Вот базовая структура, которую я использую в index.php (с формой), validate.php (для очистки, а также «header()»); и email.php для отправки электронных писем:
index.php?code=12345

Код: Выделить всё

require_once validate.php
require_once email.php

*"html form"*

if ($key==$submitted){ //form submitted
echo'Your entry has been submitted.';
echo $mail_Admin_msg;
echo $mail_Member_msg;
}else{
echo 'Please complete the form.';
}
validate.php

Код: Выделить всё

$key = filter_var($_GET['code'], FILTER_SANITIZE_URL);

"All the form $_Post / sensitization"

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['submit']) && count($errors) === 0){

$sql_insert = "INSERT INTO ... VALUES ...";
if ($sql_connect->connect_errno){
die("Connection Failed: ". $sql_connect->connect_error);
}

if ($sql_connect->query($sql_insert) === TRUE){
$last_inserted_id = $sql_connect->insert_id;

//MySQL select and data assigned to variables were here. But variables kept being undefined for email.php. EXAMPLE:
//$sql_select = "SELECT * FROM event_table WHERE event_id = $last_inserted_id";
//moved MySQL select and data/assigned variables to email.php

header ('location:'. htmlspecialchars($_SERVER["PHP_SELF"]).'?code='.$submitted);

} else {
echo "Error: ". $sql_insert. "
". $sql_connect->error;
}

}
email.php

Код: Выделить всё

require 'vendor/autoload.php';
use PHPMailer ..... all the required lines

if (isset($last_inserted_id)){
$sql_select = "SELECT * FROM event_table WHERE event_id = $last_inserted_id";
$sql_select_get = $sql_connect->query($sql_select);
if ($sql_select_get->num_rows > 0) {
// Fetch the data from the result
$sql_got_row = $sql_select_get->fetch_assoc();
$name= $sql_got_row['name'];
$date= $sql_got_row['date'];
....and so on....
}

...email to/cc addresses and body... Email sends without issue. I have two version, one for submitter and another version to admin...

try {
$mail_Admin->send();
$mail_Admin_msg = "Email sent successfully!";
$mail_Member->send();
$mail_Member_msg = "A copy of the submission sent to email ".$email_sender."";
} catch (Exception $e) {
echo "Email sending failed: " . $e->ErrorInfo.  "";
}
}
Я попробовал ChatGPT, пытаясь понять, как работает заголовок (), но мне что-то не хватает.
Спасибо, что обратили на это внимание.
Я попробовал ChatGPT, пытаясь понять, как работает заголовок (), но что-то упускаю.
Спасибо, что обратили на это внимание.
п>

Подробнее здесь: https://stackoverflow.com/questions/792 ... g-the-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»