IM,但它總是返回0。lastInsertID返回0,即使使用功能PDO :: lastInsertID(也mysqli_insert_id發生)的持久連接
我已經擡頭的問題,並看到,這應該已經解決了這一問題:MySQL: LAST_INSERT_ID() returns 0 通過開啓phpMyAdmin的「的config.inc.php」文件persistentConnections,但問題仍然存在...
我的表「保留」的主鍵,其AUTO_INCREMENTs。
這裏是我的代碼:
我得到了我的網站上一個按鈕,用於調用此JavaScript代碼:
function sonderbuchung()
{
setReservationType();
getSonderbuchungID();
}
function getSonderbuchungID() {
$.ajax({
url:'sonderbuchungEditID.php',
complete: function (response) {
$('#output').html(response.responseText);
},
error: function() {
$('#output').html('Bummer: there was an error!');
}
});
return false;
}
function setReservationType()
{
$.ajax({
url: "reservationType.php",
type: "POST",
data: 'reservationtype=sonderbuchung',
success: function(data) {
$('#output').html(data);
},
error: function(data) {
$('#output').html(data.responseText)
},
});
}
在我的MySQL服務器有一個插入happend後生成一個隨機字符串,現在我想通過查看最後一個插入的ID並將其作爲randomString來獲取隨機字符串。 (尚未執行顯然「這個問題的原因)
sonderbuchungEditID.php:
<?php
require_once('bdd.php'); //Database connection
echo($bdd->lastInsertID());
?>
reservationType.php(所有細的工作,只爲所有代碼的緣故)
<?php
require_once('bdd.php');
if(isset($_POST['reservationtype'])){
$reservationtype = $_POST['reservationtype'];
$sql = "INSERT INTO reservations(reservationtype) values ('$reservationtype')";
$query = $bdd->prepare($sql);
if ($query == false) {
file_put_contents('LOGname.txt', print_r($bdd->errorInfo(), true));
die ('Error prepairing');
}
$sth = $query->execute();
if ($sth == false) {
file_put_contents('LOGname.txt', print_r($query->errorInfo(), true));
die ('Error executing');
}
}
?>
要調用獲得最後一個插入ID不插入任何內容。它只在插入語句執行後立即生效。 –
所以我應該使用lastInsertID並直接在「reservationType.php」中回顯它? –
請參閱下面的答案。 –