вернуть mysql последний идентификатор вставки в качестве переменной ссылки

У меня есть следующие страницы PHP. Мне нужно вернуть последний вставленный идентификатор оператора INSERT на мою страницу php в качестве переменной ссылки. Мой код выглядит следующим образом:

room_reservation.php

<?php
if(isset($_REQUEST["id"])){
echo $_REQUEST["id"];
}
?>
<html>
<body>
<form method="post" action="reception-c.php">
<input type="text" name="trans_id"/>
<input type="text" name="start_date"/>
<input type="text" name="cust_id"/>
<input type="submit" name="submit" value="submit"/>
</form>
</body>
</html>

прием-c.php

<?php
require_once '../model/reception-m.php';

$trans_id=$_POST["trans_id"];
$start_date=$_POST["apply_date"];
$cust_id=$_POST["customerid"];
$obj=new Reception();
if($trans_id===""){
$result=$obj->generateNewTransaction($start_date,$cust_id);
$trans_id=$result;
}
header("Location: ../view/room_reservation.php?id=$trans_id");

?>

прием-m.php

require_once '../../common/model/dbconnection-m.php';

<?php
class Reception{
public function generateNewTransaction($start_date,$cust_id){
global $db;
$query="INSERT INTO transaction_log VALUES ('','$start_date',NULL,'pending','$cust_id')";
$result=$db->add_query($query);
return $db->insert_id; //Not Working
}
}
?>

DbConnection-m.php

<?php

class Database{
private $connection;

function __construct() {
$this->open_connection();
}

public function open_connection(){
$this->connection=  mysqli_connect('localhost', 'root', '', 'mis');
if(!$this->connection){
die("Error, failed to connect to database ".  mysqli_error($this->connection));
}
}

public function add_query($query){
$result=  mysqli_query($this->connection, $query);
if(!$result){
die("Error while adding query ".  mysqli_error($this->connection));
}
else{
return $result;
}
}

public function fetch_array($value){
return $value->fetch_assoc();
}
}

$db=new Database();

Мой код работает до момента, когда в receive-m.php запрос будет отправлен. Подтверждено через phpmyadmin просмотра таблицы. Однако return $ db-> insert_id; в приеме-м .php не работает, и я получаю пустое значение, возвращаемое (не ноль).

В таблице для параметраaction_id установлено значение AUTO INCREMENT, поэтому я не думаю, что это проблема. Я обеспокоен моим dbconnection-m.php, поскольку он не используется в объяснениях документации php.

Пожалуйста, помогите мне разобраться в этом вопросе …

РЕДАКТИРОВАТЬ

1   transaction_id Primary  int(11) AUTO_INCREMENT
2   start_date  date
3   end_date    date
4   status  enum('pending', 'completed')
5   customer_id int(11)

0

Решение

Измените следующий синтаксис в файлах, которые я укажу, поскольку последний вставленный идентификатор можно получить с помощью переменной подключения и после выполнения запроса.

прием-m.php

Заменить:

return $db->insert_id; //Not Working

с

return $db->$connection->insert_id;

и в этом файле вы должны сделать следующие изменения.

DbConnection-m.php

Заменить:

class Database{
private $connection;

с

class Database{
protected $connection;
1

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

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

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