return mysql 最后插入 id 作为 link 变量
return mysql last insert id as a link variable
我有以下 php 页。我需要将 INSERT 语句的最后插入 ID return 作为 link 变量添加到我的 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();
我的代码一直有效,直到在接待处-m.php 查询被提交。通过 phpmyadmin 浏览 table 确认。然而 return $db->insert_id;在 reception-m .php 中不起作用,我得到一个空值 returned(不是零)。
table 已将 transaction_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)
更改我将指出的文件中的以下语法,因为可以在连接变量的帮助下并在执行查询后获取最后插入的 ID。
接待-m.php
替换:
return $db->insert_id; //Not Working
和
return $db->$connection->insert_id;
并且在此文件中,您必须进行以下更改。
dbconnection-m.php
替换:
class Database{
private $connection;
和
class Database{
protected $connection;
我有以下 php 页。我需要将 INSERT 语句的最后插入 ID return 作为 link 变量添加到我的 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();
我的代码一直有效,直到在接待处-m.php 查询被提交。通过 phpmyadmin 浏览 table 确认。然而 return $db->insert_id;在 reception-m .php 中不起作用,我得到一个空值 returned(不是零)。
table 已将 transaction_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)
更改我将指出的文件中的以下语法,因为可以在连接变量的帮助下并在执行查询后获取最后插入的 ID。
接待-m.php
替换:
return $db->insert_id; //Not Working
和
return $db->$connection->insert_id;
并且在此文件中,您必须进行以下更改。
dbconnection-m.php
替换:
class Database{
private $connection;
和
class Database{
protected $connection;