Автор Тема: MySQL fatal error  (Прочитано 3935 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alex Krychek

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
MySQL fatal error
« : 31 Января 2004, 15:37:18 »
Не могу понять из-за чего вылетает MySQL...


ОС: Windows 98 SE
Сервер: Apache Version 1.3.20 (Win32)
PHP Version: 4.0.6
MySQL Version 3.23.34


Суть проблемы:
Делаю сайт на PHP у себа на локальном компе.  При загрузке страницы новостей после функции определения количества посетителей стала вылетать ошибка и выгружаться MySQL.


Код:

[начальные теги HTML]

require("config.php"); //имя БД, имя пользователя и др. настройки
require("functions.php"); //функции

$ses_id = dbConnect($db_host_name, $db_user_name, $db_password); //подключение к БД
$result = dbSelect($db_name, $ses_id); //выбор БД

if (!$result) {
  echo "DB was not found
\\n";
}

require(\'online.php\');

+---------- | файл online.php |----------+

session_set_cookie_params("0"); //Задаем время жизни cookie

$id=session_id(); //id сессии
$time=time(); //текущее время
$past=time()-500; //время, после которого надо удалять сессии

@mysql_query("DELETE FROM gwmi_online WHERE last_time < \'$past\'"); //Удаление старых сессий
$result=@mysql_query("SELECT last_time FROM gwmi_online WHERE sess_id=\'$id\'"); //Выбор таблицы
$rows=@mysql_num_rows($result); //Если в таблице есть sess_id с $id, то равно 1, иначе 0
if ($rows!="0") {
  @mysql_query("UPDATE gwmi_online SET last_time=\'$time\' WHERE sess_id=\'$id\'");
} else {
  @mysql_query("INSERT INTO gwmi_online (last_time, sess_id) VALUES (\'$time\', \'$id\')");
}
$result = @mysql_query("SELECT * FROM gwmi_online"); //Выбор всех сессий
$count = @mysql_num_rows($result); //Считывание числа сессий
echo "

$count человек on-line 

\\n"; //Вывод числа юзеров

+---------------------------------------------+

$newsam = 15;

Потом идет обращение к БД, при котором и происходит ошибка:

$result = mysql_query("SELECT * FROM gwmi_news ORDER BY news_year DESC, news_month DESC, news_day DESC, news_hour DESC, news_min DESC, news_sec DESC LIMIT 0, $newsam");


Структуры таблиц:

CREATE TABLE `gwmi_news` (
  `news_id` int(10) unsigned NOT NULL auto_increment,
  `news_title` varchar(50) NOT NULL default \'\',
  `news_year` int(4) NOT NULL default \'0\',
  `news_month` int(2) NOT NULL default \'0\',
  `news_day` int(2) NOT NULL default \'0\',
  `news_hour` int(2) NOT NULL default \'0\',
  `news_min` int(2) NOT NULL default \'0\',
  `news_sec` int(2) NOT NULL default \'0\',
  `news_autor` varchar(30) NOT NULL default \'\',
  `news_text` text NOT NULL,
  PRIMARY KEY  (`news_id`)
) TYPE=MyISAM;

CREATE TABLE `gwmi_online` (
  `hid` int(11) NOT NULL auto_increment,
  `sess_id` char(255) NOT NULL default \'\',
  `last_time` char(255) NOT NULL default \'\',
  PRIMARY KEY  (`hid`)
) TYPE=MyISAM;


Помогите разобраться из-за чего это происходит. Если при первом открытии страницы (после запуска сервера и MySQL) закоментарить загрузку online.php, страница загружается без ошибок и вылета MySQL. И если потом разкомментарить обращение к файлу, страница загружается норамльно. Так же если переместить загрузку online.php после загрузки новостей, никаких глюков не наблюдается. online.php нормально работает с другими страницами...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
MySQL fatal error
« Ответ #1 : 31 Января 2004, 16:00:52 »
для начала удали все собачки из твоего кода. И посмотри есть ли ошибки с запросами.
Во-вторых точно процитируй ошибку и покажи строку, в которой она появляется


ЗЫ
Цитировать
Alex Krychek:
`news_year` int(4) NOT NULL default \'0\',
`news_month` int(2) NOT NULL default \'0\',
`news_day` int(2) NOT NULL default \'0\',
`news_hour` int(2) NOT NULL default \'0\',
`news_min` int(2) NOT NULL default \'0\',
`news_sec` int(2) NOT NULL default \'0\',
а в одном поле хранить дату наверное неудобно ;)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Alex Krychek

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
MySQL fatal error
« Ответ #2 : 31 Января 2004, 16:14:26 »
С собачками, без собачек - один фиг. Я их поставил после...

Ошибка такая:
Mysqld-opt
This program has performed an illegal operation and will be shut down. и т.д. (обратиться к разработчику, если проблема повторяться будет)
Details >>
MYSQLD-OPT caused an invalid page fault in
module MYSQLD-OPT.EXE at 017f:0045dbee.
Registers:
EAX=00000000 CS=017f EIP=0045dbee EFLGS=00010287
EBX=00000001 SS=0187 ESP=0179f73c EBP=00000300
ECX=00000000 DS=0187 ESI=00a04100 FS=7f7f
EDX=00a922d0 ES=0187 EDI=00000000 GS=0000
Bytes at CS:EIP:
39 11 75 3b 33 d2 8a 51 14 f6 d2 33 db 81 e2 ff
Stack dump:
00000020 00000005 00a91090 00000001 0045da27 00a04100 00a91090 00000005 00000000 00a04810 01445770 00a04100 00000000 0045dc61 00a04810 00a04100

P.S.
Разговор сейчас не о дате...

Оффлайн Alex Krychek

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
MySQL fatal error
« Ответ #3 : 31 Января 2004, 16:23:12 »
Кстати, скрипт определения количества юзеров я взял с этого сайта.
« Последнее редактирование: 31 Января 2004, 16:47:14 от Alex Krychek »

Оффлайн Alex Krychek

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
MySQL fatal error
« Ответ #4 : 01 Февраля 2004, 04:04:49 »
После замены в БД типа поля last_time на int(100) ошибка больше не появлялась. Но надолго ли?..

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
MySQL fatal error
« Ответ #5 : 01 Февраля 2004, 10:46:26 »
Alex Krychek , увы, на этом сайте, за неимением лучшего, публикуют скрипты от полных идиотов.
И ты взял как раз такой.

Мой тебе совет, от чистого сердца.
Пиши программы сам.
И при этом ты должен очень хорошо понимать, что делает каждая строчка в твоей программе.
Только тогда твои программы будут работать и ты сам сможешь находить в них ошибки.

Удачи.

Оффлайн Alex Krychek

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
MySQL fatal error
« Ответ #6 : 01 Февраля 2004, 11:00:53 »
Да я в основном так и делаю. И этот скрипт я уже перписал.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
MySQL fatal error
« Ответ #7 : 01 Февраля 2004, 11:24:04 »
кхмммм...
если ты имеешь в виду собачек, то изменил ты скрипт не в лучшую сторону, да...

и, если ты переписал, то не надо тогда упоминать, что ты взял его на этом сайте :-)

Оффлайн Alex Krychek

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
MySQL fatal error
« Ответ #8 : 01 Февраля 2004, 14:02:28 »
Я не имел в виду собачек. А переписал я уже после того, как глюки эти появились.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
MySQL fatal error
« Ответ #9 : 01 Февраля 2004, 14:06:17 »
быстро, однако :-)
и даже все эти сессион_ид и сессион_старт убрал?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28