Я использую PHP для сценариев на стороне сервера и сервера mysql для базы данных. Если я использую mysql_insert_id()
, тогда он дает «0», а использование LAST_INSERT_ID()
вызывает ошибку «объект возвратил пустое описание» .Это ошибка, которую я вижу, когда я отлаживаю клиентскую сторону в объективе-C. Обозначение столбца таблицы My автоматически генерируется. Я не пропускаю идентификатор явно.Получить идентификатор последней вставленной строки в PHP
Ниже приведен PHP-код:
// Connect to our database
$db = Frapi_Database::getInstance();
$sql = "INSERT INTO userTrip
(userId, fromLat, fromLon, fromLoc, fromPOI,
toLat, toLon, toLoc, toPOI,
tripFinished, isMatched, departureTime, createdAt)
values
(".$userId.",".$fromLat.",".$fromLon.", GeomFromText('POINT($fromLat $fromLon)')".",'".$fromPOI."',".$toLat.","
.$toLon.", GeomFromText('POINT($toLat $toLon)')".",'".$toPOI."',0,0,'".
$departureTime."','".date('Y-m-d H:i:s')."')";
$stmt = $db->prepare($sql);
if (!$stmt->execute())
throw new Frapi_Error('ERROR_INSERTING_RECORD');
$lastId = LAST_INSERT_ID();
$this->data['tripId'] = $lastId;
$db = null;
Вы пытались проверить, успешна ли ваша вставка? –
Убедитесь, что запись вставлена или у вас есть автоматически увеличиваемый первичный ключ, потому что mysql_insert_id() возвращает 0, если предыдущий запрос не генерирует значение AUTO_INCREMENT. – Arvind