mysql_insert_id() всегда возвращает 0
У меня есть этот код, который мне нужно заполнить через форму новой строки в двух таблицах с ограничением внешнего ключа. Эта ссылка относится только к первой вставке, и мне нужно определить сгенерированный last_id, чтобы использовать его для связанной таблицы. Но $ last_id возвращает всегда ноль, несмотря на новую запись create.
//Connect to Database
$con=mysqli_connect($db_host,$db_username,$db_pass,$db_name);
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Database connesso
// Devo inserire il record in Documents prima perché é quello che genera la Primary Key
$sql=" INSERT INTO Documents (doc_name, doc_type, doc_manager, doc_pointer) VALUES ('$upload_name','Privacy','Agente di riferimento','$pic')";
$last_id = mysql_insert_id();
Echo "Last Protocol Number =".$last_id."<br>";
Абсолютно похожий код прекрасно работает в другом скрипте, поэтому не должно быть проблемой версии php:
// Записывает информацию в базу данных mysql_query ("INSERT INTO
documents
(doc_name, doc_type, doc_manager, doc_pointer) VALUES ('$ name', '$ type', '$ manager', '$ pic') "); $ id = mysql_insert_id (); Echo" Номер последнего протокола =".$ Я бы."
";
Не в состоянии понять, где проблема.
1 ответ
Вы забыли выполнить запрос и смешали mysql_
а также mysqli_
API-интерфейсы
$sql=" INSERT INTO Documents (doc_name, doc_type, doc_manager, doc_pointer) VALUES ('$upload_name','Privacy','Agente di riferimento','$pic')";
mysqli_query($con, $sql);
$last_id = mysqli_insert_id($con);
К вашему сведению, в этом примере нет обработки ошибок. Вы должны добавить это.