mysql_insert_id не так работает

Статус
В этой теме нельзя размещать новые ответы.

zilon

Постоялец
Регистрация
30 Июл 2011
Сообщения
370
Реакции
146
добавлял по 500 записей в бд и увидел что mysql_insert_id не так работает, на оф сайте написано что он устарел, подскажите пожалуйста что использовать вместо него, я искал не нашёл...

-88693455.png
 
Что значит "не так работает"? версия mysql? php?
Если уж на то пошло, устарели все функции, начинающиеся с mysql_ (альтернатива PDO или mysqli_)

А на скрине что означают числа в первой и второй колонках?
И да.. какое текущее значение auto_increment у таблицы?
 
Если уж на то пошло, устарели все функции, начинающиеся с mysql_ (альтернатива PDO или mysqli_)

во я про альтернативную функцию спрашиваю что в место
PHP:
mysql_insert_id();
использовать? версия php 5.3.3 mysql 5.1.69. Первая колонка id сразу за 1481 идёт 14731 а должно идти 1482. Поэтому спрашиваю чем mysql_insert_id() заменить
 
тут картинка "нельзя просто так взять и заменить одну функцию" (С)
переписывать весь код придётся.

А по теме - вопрос про текущий автоинкремент таблицы остался без ответа.
Есть ощущение, что дело не в устаревшей функции.

Что в самой таблице (если при помощи phpmyadmin открыть)?
 
mysql_insert_id хоть и "устарела", но всё же замечательно работает (насколько я знаю на всех последних версиях PHP)

Немного "поRTFMлю"...
mysql_insert_id Возвращает идентификатор, сгенерированный при последнем INSERT-запросе
Именно так используется функция?
 
А по теме - вопрос про текущий автоинкремент таблицы остался без ответа.
Есть ощущение, что дело не в устаревшей функции.

Что в самой таблице (если при помощи phpmyadmin открыть)?

первое значение это id а второе позиция в группе. Я из бекапа восстановил, добавил данные несколько раз, поэтому текущее значение автоинкремента - 13254

Именно так используется функция?

да так вот часть кода

PHP:
<?php

$db = mysql_connect("localhost","","");
mysql_select_db("" ,$db);
@mysql_query("SET NAMES utf8");

$result = mysql_query ("INSERT INTO keitaro_streams (id, group_id, position, chance, redirect_type, url, comments, status, countries_filter, countries_filter_value, cities_filter, cities_filter_value, ip_filter, ip_filter_value, browser_filter, browser_filter_value, os_filter, os_filter_value, keywords_filter_value, langs_filter, langs_filter_value, referer_filter, referer_filter_value, proxy_filter, uniq_filter, schedule, start_date, end_date, manual_referer,    checker_active,    checker_url, checker_regx, checker_action, checker_interval, checker_source, checker_next_run, checker_action_done, manual_filters, ua_filter, ua_filter_value,    mobile_filter) VALUES('mysql_insert_id();', '26', '1', '0', 'location', 'http://movie.909.su/article.php?id=1348511604', '', '1', '', '', '', '', '', '', '', '', '', '', '*стив джобс потерянное интервью*', '', 'a:0:{}','', '', '', '', '', '0', '0', '', '0', '', '', 'disable', '0', '', '0', '0', 'a:0:{}', '', '', '')");     if ($result == true)

        {echo 'Добавлено<br>';
        }
        else
        {
        echo'ОШИБКА - ';
echo mysql_errno() . ": " . mysql_error($db) . "\n";
        }

    mysql_close($db);

?>

он генерится скриптом и повторяется 500 раз подряд, не более, потом сохраняется, заливается, открывается...
 
А где в этой части кода mysql_insert_id :D ?

upd о.. разглядел.. Она под двумя кавычками и ещё с точкой с запятой..
конечно, так она работать не будет.

upd2 И до кучи.. работает эта штука в пределах соединения с БД.
 
работать она не будет даже не потому, что в кавычках, а потому, что на момент её вызова запрос ещё не выполнен, и возвращать тупо нечего..

сделайте ALTER TABLE keitaro_streams MODIFY COLUMN id INTEGER NOT NULL AUTO_INCREMENT; и спите спокойно (id из insert уберите только)..
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху