Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не отдает LastInsertID, MySql 
:(
    Опции темы
DeamonShan
Дата 28.10.2010, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 26.11.2005

Репутация: 3
Всего: 6



Возможно тема не туда...

Запрашиваю в базу "insert into tabl ......"
 запрос выполняется корректно, затем запрашиваю его autoindex ($db->GetLastInsertID() - функция из класса, 100% рабочая)

Код

$db->Query("insert into table bla bla bla");
$id=$db->GetLastInsertID();


$id не получает значение индекса последнего инсерта... в чем могут быть косяки?

Код

CREATE TABLE IF NOT EXISTS `pl_doc` (
  `id` int(11) NOT NULL auto_increment,
  `podrazdel` int(4) NOT NULL,
  `type` varchar(5) NOT NULL,
.......
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;


PM MAIL   Вверх
ksnk
Дата 28.10.2010, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



А класс работы с базой данных чей? Может там поковыряться?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
DeamonShan
Дата 28.10.2010, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 26.11.2005

Репутация: 3
Всего: 6



http://www.phpclasses.org/browse/package/3698.html собвтвенно сам класс...

Но класс рабочий, там таких запросов не мало. в других местах (скриптах) метод работает. Я думал, что таблицу непривально создал, но вроде там тоже все в поряде. А не работает именно тут...

вот сама последовательность выполнения:

Код

    $db->Query("
        INSERT INTO `pl_doc` (podrazdel,type)
        VALUES ('$podrazdel','$pl_doc_name')
    ");
    $id_last=$db->GetLastInsertID();
    $db->Query("insert into `pl_log` (id_pl, id_manag, time, do) values('".$id_last."','".$manager["id"]."','".time()."','open')");

PM MAIL   Вверх
ksnk
Дата 28.10.2010, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Значит ошибка случилась при выполнении.
Напиши 
Код

$db->ThrowExceptions =true;

Жить станет сложнее, но интереснее  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
BuShaRt
Дата 28.10.2010, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



А Вы проверяли наличие успешно выполненного запроса вставки?
PM MAIL   Вверх
DeamonShan
Дата 28.10.2010, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 26.11.2005

Репутация: 3
Всего: 6



Код

Fatal error: Uncaught exception 'Exception' in /usr/home/user/domains/my.ru/public_html/whs/libs/mysql.class.php:1510 Stack trace: 
#0 /usr/home/user/domains/my.ru/public_html/whs/libs/mysql.class.php(1248): MySQL->SetError() #1 /usr/home/user/domains/my.ru/public_html
/whs/libs/mysql.class.php(320): MySQL->Release() #2 /usr/home/user/domains/my.ru/public_html/whs/includes/engine.php(19): MySQL->Close() #3 
/usr/user/case/domains/my.ru/public_html/whs/includes/init.php(30): require('/usr/home/user/...') #4 /usr/home/user/domains/my.ru/public_html
/whs/index.php(6): require('/usr/home/user/...') #5 {main} thrown in /usr/home/user/domains/my.ru/public_html/whs/libs/mysql.class.php on line 
1510


вот что дало.... странно, попытался прочитать, нифига не понял.

Добавлено @ 19:08
BuShaRt, да конечно, проверял, в базе есть новая строка. Автоиндекс меняется... но функция не возвращает ничего...

Это сообщение отредактировал(а) DeamonShan - 28.10.2010, 19:11
PM MAIL   Вверх
ksnk
Дата 28.10.2010, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Значит имеет место быть ошибка. Нужно убрать ThrowExceptions , раз толком никто не может его расшифромать и почитать в документации по классу как-же получить описание ошибки. 

Судя по всему - ключ дублируется...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
DeamonShan
Дата 28.10.2010, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 26.11.2005

Репутация: 3
Всего: 6



Ключь? Автоинкремент дублируется?? странно, я смотрел базу, там не дублирований, я же не задаю в ручную следующий индекс..
PM MAIL   Вверх
ksnk
Дата 28.10.2010, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(ksnk @  28.10.2010,  20:22 Найти цитируемый пост)
почитать в документации по классу как-же получить описание ошибки. 

?
Там случается ошибка в процессе выполнения запроса. Можно наплевать на класс и выполнить его простыми mysql_query и mysql_error запросами.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
DeamonShan
Дата 28.10.2010, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 26.11.2005

Репутация: 3
Всего: 6



ksnk, работает)))) и с классом работает в других моментах..... но не в этом... 

странное поведение не понятное...

Код

    $db->Query("
        INSERT INTO `pl_doc` (podrazdel,type)
        VALUES ('$podrazdel','$pl_doc_name')
    ");
    $id_last=$db->GetLastInsertID();
    $db->Query("insert into `pl_log` (id_pl, id_manag, time, do) values('".$id_last."','".$manager["id"]."','".time()."','open')");
    $db->GetLastInsertID();


первая $db->GetLastInsertID(); возвращает 0, а вторая корректно последний индекс...

Добавлено @ 23:42
Прикол... исправил так:

Код

    $db->Query("INSERT INTO `pl_doc` (podrazdel,type) VALUES ('$podrazdel','$pl_doc_name')");
    $id_last=$db->GetLastInsertID();


то есть написал все в одну строку... и заработало..... блин я не собираюсь длинные запросы в одну строку писать..я же запутаюсь...

Добавлено через 14 минут и 56 секунд
Что странно, так запрос выполняется в первоначальном виде....

Это сообщение отредактировал(а) DeamonShan - 28.10.2010, 23:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0696 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.