MySQL Insert_id возвращает ноль, даже если была вставкаPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 MySQL Insert_id возвращает ноль, даже если была вставка

Сообщение Anonymous »

У меня есть следующий PHP-код. Я хочу вернуть последний идентификатор вставки:

Код: Выделить всё

$sql = $this->dbLink->prepare("
INSERT INTO VesselTransits (CreatedByUserID, TerminalID, VesselArrivalDate, VesselNameID)
VALUES (?,?,?,?)
");
//i=integer, s=string
$sql->bind_param('iisi', $userID, $terminalID, $arrivalDate, $vesselNameID);
$userID          = $this->invoiceData['userID'];
$terminalID      = $this->invoiceData['terminalID'];
$arrivalDate     = date('Y-m-d', strtotime($this->invoiceData['berthDate']));
$vesselNameID    = $this->invoiceData['vesselNameID'];
$sql->execute();
$vesselTransitID = $sql->insert_id;
//echo('RecordInvoice line '.__LINE__.'
');print_r($vesselTransitID);echo('');exit();

return($vesselTransitID);
Моя схема БД следующая:

Код: Выделить всё

CreatedByUserID   int
CreationDate      datetime
ModifiedByUser    int
ModifyDate        datetime
TerminalID        int
VesselArrivalDate datetime
VesselNameID      int
VesselTransitID   int [auto_increment]
Я швырнул в него кухонную раковину, но кости не получились. Что бы я ни делал, $vesselTransitID всегда не определен. Я проверил, что вставка действительно есть. У меня остался единственный (УЖАСНЫЙ) вариант - запустить еще один выбор и вернуть MAX VesselTransitID, что не гарантирует правильный результат.

Подробнее здесь: https://stackoverflow.com/questions/668 ... -an-insert
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»