有没有办法在不使用的情况下使用php在MySql表中获取最后一个编辑ID:
$mysqli->insert_id
我目前使用的代码不能使用$ mysqli-> insert_id。 (至少我的知识有限) 我的Sql执行是在一个单独的类和函数中。 我似乎无法找到一种方法来使它工作。
从表单中提取数据的代码:
$PartyName = $_POST['txtPartyName'];
$sDate = date('Y-m-d', strtotime($_POST['startDate']));
$eDate = date('Y-m-d', strtotime($_POST['endDate']));
//echo $_SESSION['ID']." ". $PartyName." ". $sDate." ".$eDate;
EditParty::NewParty($_SESSION['ID'], $PartyName, $sDate, $eDate);
$_SESSION['PartyID'] = DataBase::LastInsert();
生成Sql语句并传递所需值的函数:
public function NewParty($ID, $PartyName, $sDate, $eDate){
$sql = "INSERT INTO parties (HostID, PartyName, sDate, eDate)
VALUES ( '?' , '?' , '?' , '?' )";
$BindVars = array($ID, $PartyName, $sDate,$eDate);
$result = DataBase::RunSql($sql, $BindVars);
$_SESSION['PartyID'] = DataBase::LastInsert();
header('Location: /OnlineParty/PartyPlaning/EditPartyP.php');
}
最后获取最后编辑值的函数
public function LastInsert() {
$mysqli = DataBase::ConDataBase();
$result = $mysqli->insert_id;
echo $result;
return $result;
}
答案 0 :(得分:0)
通过将连接传递给每个函数来解决这个问题,以便它们都使用相同的连接。保存了$ mysqli-> insert_id的值;在$ _SESSION中随处访问。
public function RunSql($Sql, $BindVars) {
$mysqli = DataBase::ConDataBase();
$Sql = DataBase::ReturnData($Sql, $BindVars, $mysqli);
$result = $mysqli->query($Sql);
if (!$result) {
printf("Error: %s\n", mysqli_error($mysqli));
exit();
}
$_SESSION['LastInsert'] = DataBase::LastInsert($mysqli);
return $result;
}
请注意,RunSql中的连接与整个过程中使用的连接相同。
public function LastInsert($mysqli) {
$result = $mysqli->insert_id;
//echo $result;
return $result;
}