Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Веб - Программирование > PHP

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 25.12.2008, 10:57   #1
Пользователь
 
Аватар для mrzed
 
Пол:Мужской
Регистрация: 07.11.2005
Сообщений: 145
Репутация: 42
По умолчанию проблема с PHP и MySQL, обработкой запроса

я написал PHP, который читает файлик (код товара $Articul и цена $Pr) и пишет в базу. Файлик обычный, текстовый... Запрос:
Код:
UPDATE user_babymarket.catalog SET price = '".$Pr."' WHERE catalog.kod = '".$Articul."' LIMIT 1 ;
Проблема в том, что иногда выполняется (времени уходит минут пять), а иногда ни в какую не хочет, все пролетает на экране за 1 секунду, типа отработало, но в базу ничего не записало.. Как решить? Может запрос где-то закэширован???

Последний раз редактировалось mrzed; 25.12.2008 в 11:11..
mrzed вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: сара сондача барнхаусМагазин бытовой техники: дешевая стиральная машина - переходи на сайт ТАЙМТВ!шкаф управления вентиляциейМебельный магазин: детская мебель амели - Переходи на сайт!


Старый 25.12.2008, 13:03   #2
agent_smith
Пользователь
 
Пол:Мужской
Регистрация: 07.03.2008
Адрес: Киев
Сообщений: 111
Репутация: 35
По умолчанию Re: проблема с PHP и MySQL, обработкой запроса

Ну пролетает тогда когда просто нет записи в базе.
Тебе надо сначало проверять есть ли запись в базе, если есть то делать update а если нету то insert.

А по поводу скорости попробуй задать индекс-uniq или primary key на поле kod.

И зачем использовать LIMIT 1?
agent_smith вне форума
 
Ответить с цитированием Вверх
Старый 26.12.2008, 16:07   #3
mrzed
Пользователь
 
Аватар для mrzed
 
Пол:Мужской
Регистрация: 07.11.2005
Сообщений: 145
Репутация: 42
По умолчанию Re: проблема с PHP и MySQL, обработкой запроса

запись в базе есть, это априори. Я просто лишь обновляю цены в базе.. Список большой.. Я беру одну строчку и пишу в базу, в принципе Limit 1 не обязателен.. К скорости у меня претензий нет, это разовая процедура в несколько дней.. Проблема в том, что команды выполняются, но без изменений в базе. Выполняется 9000 запросов. Через некоторое время можно выполнить процедуру и изменения примут силу.. Но иногда ну просто ни в какую не хочет.
mrzed вне форума
 
Ответить с цитированием Вверх
Старый 26.12.2008, 17:18   #4
agent_smith
Пользователь
 
Пол:Мужской
Регистрация: 07.03.2008
Адрес: Киев
Сообщений: 111
Репутация: 35
По умолчанию Re: проблема с PHP и MySQL, обработкой запроса

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

А и еще в скрипте для тестов лучше убрать функции которые подавляют исключения.

Последний раз редактировалось agent_smith; 26.12.2008 в 17:22..
agent_smith вне форума
 
Ответить с цитированием Вверх
Старый 29.12.2008, 09:46   #5
mrzed
Пользователь
 
Аватар для mrzed
 
Пол:Мужской
Регистрация: 07.11.2005
Сообщений: 145
Репутация: 42
По умолчанию Re: проблема с PHP и MySQL, обработкой запроса

тип таблицы? а как узнать? у меня MySQL..
вот полностью код, нет никаких исключений.. Просто должны выполняться запросы.

Код:
<?php

  $file = fopen("http://XXXXXXXXXX.com.ua/price.dat","r");
  if(!file) {print("Ошибка открытия файла");}
  else{
	mysql_connect("XXXXXXXXXX", "XXXXXXXXXX", "XXXXXXXXXXXXX");
	mysql_select_db("XXXXXXXXXXXXXXXX");

	$Strochek=1;
	$Articul = trim(fread($file,25)); $Pr = trim(fread($file,5)); fread($file,2); print("<br>".$Strochek."  Артикул ".$Articul.", цена ".$Pr);
	while(strcmp($Articul,"КОНЕЦ ПРАЙСА")<>0 && $Strochek<12000){
		$sql="UPDATE user_babymarket.catalog SET price = '".$Pr."' WHERE catalog.kod = '".$Articul."' LIMIT 1 ;";
		$res=mysql_query($sql);
		$Strochek++;
 	$Articul = trim(fread($file,25)); $Pr = trim(fread($file,5)); fread($file,2);
 	print("<br>".$Strochek."  Артикул ".$Articul.", цена ".$Pr." обработка = ".$res);
	}
	print("<br><br><br><br><br>База обновлена!!!");
  }


?>

Последний раз редактировалось mrzed; 29.12.2008 в 09:48..
mrzed вне форума
 
Ответить с цитированием Вверх
Старый 09.01.2009, 09:13   #6
chumric
Неактивный пользователь
 
Пол:Мужской
Регистрация: 10.01.2007
Сообщений: 8
Репутация: 0
По умолчанию Re: проблема с PHP и MySQL, обработкой запроса

9000 запросов к БД это много, в случае если используется shared-хостинг — то тем более.
как вариант это разбить обновление прайса на несколько кусков.

Также необходимо обрабатывать ошибки mysql, например

$res = mysql_query($sql);
if($!res)
{
$error[] = "{$Articul}, ".mysql_error($res);
}

потом вывести ошибки
echo join('<br />', $error);
chumric вне форума
 
Ответить с цитированием Вверх
Старый 14.01.2009, 22:22   #7
Magicus
Неактивный пользователь
 
Пол:Мужской
Регистрация: 14.11.2007
Сообщений: 3
Репутация: 1
По умолчанию Re: проблема с PHP и MySQL, обработкой запроса

Попробуй в конце каждого скрипта писать mysql_close(); может он транзакции не комитет!
Magicus вне форума
 
Ответить с цитированием Вверх
Старый 15.01.2009, 01:40   #8
agent_smith
Пользователь
 
Пол:Мужской
Регистрация: 07.03.2008
Адрес: Киев
Сообщений: 111
Репутация: 35
По умолчанию Re: проблема с PHP и MySQL, обработкой запроса

Цитата:
Сообщение от Magicus Посмотреть сообщение
Попробуй в конце каждого скрипта писать mysql_close(); может он транзакции не комитет!

mysql_close() - закрывает соединение с базой и не делает комитов, а комитеть транзакции ему не надо, у него наверно тип таблиц MyISAM
agent_smith вне форума
 
Ответить с цитированием Вверх
Старый 16.01.2009, 12:11   #9
ligth_user
Banned
 
Пол:Мужской
Регистрация: 26.10.2005
Сообщений: 218
Репутация: 73
По умолчанию Re: проблема с PHP и MySQL, обработкой запроса

Если БД тоже находится на XXXXXXXXXX.com.ua, то, ИМХО, разумнее файлик открывать с локальным путем, а не через HTTP-протокол.
Не мешало бы почитать о возможностях транзакций именно для Вашей версии мускула.
Есть ли возможность просто импортировать текст во временную таблицу и уже из нее обновить требуемую за один проход?
ligth_user вне форума
 
Ответить с цитированием Вверх
Старый 16.03.2009, 01:38   #10
ntend
Неактивный пользователь
 
Пол:Мужской
Регистрация: 16.03.2009
Сообщений: 3
Репутация: 0
По умолчанию Re: проблема с PHP и MySQL, обработкой запроса

Цитата:
Сообщение от agent_smith Посмотреть сообщение
mysql_close() - закрывает соединение с базой и не делает комитов, а комитеть транзакции ему не надо, у него наверно тип таблиц MyISAM

В My_ISAM нет транзакции!
ntend вне форума
 
Ответить с цитированием Вверх
Старый 16.03.2009, 11:40   #11
agent_smith
Пользователь
 
Пол:Мужской
Регистрация: 07.03.2008
Адрес: Киев
Сообщений: 111
Репутация: 35
По умолчанию Re: проблема с PHP и MySQL, обработкой запроса

Цитата:
Сообщение от ntend Посмотреть сообщение
В My_ISAM нет транзакции!

Ну так само собой. И потому не надо комитеть транзакции
agent_smith вне форума
 
Ответить с цитированием Вверх
Старый 08.07.2009, 19:20   #12
P0larBeer
Неактивный пользователь
 
Регистрация: 01.12.2008
Сообщений: 11
Репутация: 2
По умолчанию Re: проблема с PHP и MySQL, обработкой запроса

Цитата:
Сообщение от mrzed Посмотреть сообщение
я написал PHP, который читает файлик (код товара $Articul и цена $Pr) и пишет в базу. Файлик обычный, текстовый... Запрос:
Код:
UPDATE user_babymarket.catalog SET price = '".$Pr."' WHERE catalog.kod = '".$Articul."' LIMIT 1 ;
Проблема в том, что иногда выполняется (времени уходит минут пять), а иногда ни в какую не хочет, все пролетает на экране за 1 секунду, типа отработало, но в базу ничего не записало.. Как решить? Может запрос где-то закэширован???

полсле WHERE пиши kod = $Articul , а не как ты написал catalog.kod ты ты уже обратился к схеме user_babymarket в таблицу catalog, вот из-за этого у тебя, надо прости пасть имя поле в условии
P0larBeer вне форума
 
Ответить с цитированием Вверх
Старый 23.07.2009, 21:23   #13
korn3000
Неактивный пользователь
 
Пол:Мужской
Регистрация: 23.07.2009
Сообщений: 17
Репутация: 0
По умолчанию Re: проблема с PHP и MySQL, обработкой запроса

а index на catalog.kod установлен?
korn3000 вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема настройки MySQL и PHP wesper Настраиваем собственный хостинг 0 18.10.2009 08:37
Проблема с отображением рез-тов запроса в DBChart на Bar ivashgold Delphi 1 26.05.2008 07:38
проблема с Delphi и MySql vovapetr Delphi 0 12.03.2008 13:58
Проблема с MySQL taral Базы данных 2 22.12.2007 13:45

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:25. Часовой пояс GMT +3.


Copyright ©2004 - 2026 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.06394 секунды с 11 запросами