Почему $ wpdb-> insert_id и mysql_insert_id () возвращаются с дополнительным '1' в конце? - PullRequest
3 голосов
/ 19 октября 2010

Мне нужно получить идентификатор значения AUTO_INCREMENT последнего запроса.

Мой запрос выглядит так:

  $result = $wpdb->query( $wpdb->prepare( "
    INSERT INTO $table_name
    ( name, season, copyright, description, path )
    VALUES ( %s, %s, %s, %s, %s )", 
    $galleryData['name'], $galleryData['season'], $galleryData['copyright'], $galleryData['description'], $galleryData['path'] ) );

  // Let's output the last autogenerated ID.
  echo $wpdb->insert_id;

  // This returns the same result
  echo mysql_insert_id();

Глядя на свою таблицу БД, я вижу строки, считающие изОт 1 до 24 (24 ряда).Но использование $wpdb->insert_id или mysql_insert_id() возвращает 241.

Новые вставки вернут 251, 261, 271 и так далее.Почему я добавляю лишний '1' в конце?

ОБНОВЛЕНИЕ
Благодаря Пекке (лучше бы я запустил закладку на количество пива, которое я ему должен)Я понял это.

Далее по коду я получил это:

  if(!$result)
    _e("[DB error] Ups. Something went wrong when trying to insert the event.");
  else
    echo true;

Это последнее утверждение (эхо верно), которое выдано!

1 Ответ

14 голосов
/ 19 октября 2010

Бьюсь об заклад, восхитительный Кёльш:

alt text

, что причина на самом деле в коде echo, что повторяет некоторую логическую переменную, чья trueперевести на 1.

Если я ошибаюсь, я приму отрицательные голоса, как человек.

(Простите за глупый ответ, уже очень поздно, и я все еще работаю :)

Обновление : Ах, радость, я был прав!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...