PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 24
KorolevSerge Отправлено: 04 Августа, 2013 - 21:47:11 • Тема: Как зделать так чтобы пользователи могли зайти гости друг другу в профиль. • Форум: Вопросы новичков

Ответов: 21
Просмотров: 1253
soffrick пишет:
$_GET = id;

HTML пишет:
Если присвоить $_GET id она будет в массиве,

soffrick сморозил ерунду, не обращайте внимания. Улыбка
KorolevSerge Отправлено: 03 Августа, 2013 - 22:11:20 • Тема: error dublicate entry key возникает только на хостинге • Форум: SQL и Архитектура БД

Ответов: 7
Просмотров: 55
да нет. я в курсе как устроено представление чисел Улыбка
опишу подробнеее. смотрите, данное число формируется на клиенте яваскриптом. если сделать алерт - отобразится положительное число. потом оно отправляется на сервер аяксом. если во время приема сериализовать число и сохранить в файл - оно будет положительным. причем перед ним будет буковка "i" (вспомните формат сериализованных данных), т.е. воспринимается оно как число.
если сделать var_dump - покажет тип float. а если сделать приведение к INT - станет отрицательным. Почему так?
речь идет о числах бОльших 2 147 483 647
KorolevSerge Отправлено: 03 Августа, 2013 - 20:27:06 • Тема: error dublicate entry key возникает только на хостинге • Форум: SQL и Архитектура БД

Ответов: 7
Просмотров: 55
Разобрался, проблему решил, но сути так и не понял.

в общем дело было в том что при подстановке в запрос данные "чистились" банальным приведением к INT

(int)$number

и если число содержало в 32 бите единицу (т.е. было больше 2 147 483 647) то оно трактовалось как отрицательное.
Убрав приведение типа и сделав поле в БД unsigned проблема была решена. данные заносятся корректно.

Но вопрос для меня остается открытым, почему число вдруг становилось отрицательным?
KorolevSerge Отправлено: 01 Августа, 2013 - 00:13:24 • Тема: error dublicate entry key возникает только на хостинге • Форум: SQL и Архитектура БД

Ответов: 7
Просмотров: 55
Panoptik пишет:
разрядность ос на хостинге (32 бит)
а как узнать? в phpinfo нашел строку "x86_64-unknown-linux-gnu"

Мелкий пишет:
unsigned пропустили при создании поля.

верно, но с unsigned та же проблема Улыбка только теперь ругаеся на "0".

Сейчас уже голова не варит, завтра попробую сформулировать и описать проблему точнее.
KorolevSerge Отправлено: 31 Июля, 2013 - 22:06:05 • Тема: error dublicate entry key возникает только на хостинге • Форум: SQL и Архитектура БД

Ответов: 7
Просмотров: 55
Такая вот трабла. Есть поле с уникальным ключом. INT. Числа в нем могут быть разные от "0" до "4 294 967 295", но уникальные.
Когда я делаю импорт в эту таблицу (php-скриптом) на локальном сервере (win8 x64, php5.3.22, MySQL5.5.30) то все проходит отлично. Данные вносятся корректно, без ошибок.
Когда проделываю все то же самое на хостинге (x86_64-unknown-linux-gnu, PHP5.3.14, MySQL5.1.54) вываливается ошибка, что такой ключ существует (в то время, как его существовать не может, например при заливке первого блока данных вв чистую таблицу). И ругается на значение "2 147 483 647" (половина от максимум возможного).
Если убрать UNIQUE с поля, то данные вносятся, но, разумеется некоректно. Все числа бОльшие "2 147 483 647", записываются как "2 147 483 647".
upd: например число "-666 592 868" (так оно у меня отображается в HeidiSQL) превращается и записывается как пресловутое "2 147 483 647".

В чем может быть проблема?
KorolevSerge Отправлено: 31 Июля, 2013 - 21:49:23 • Тема: 10 000 запросов INSERT\UPDATE не напрягая базу • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 39
на порции разбито. я писал об этом. порция вносится - страница обновляется, вносится следующая.

Спасибо за идеи, буду пробовать.
И еще посоветовали использовать препарированные запросы (юзаю PDO), т.к. запрос один и тот же, только меняются данные. Это даст положительный результат?
KorolevSerge Отправлено: 31 Июля, 2013 - 20:02:11 • Тема: 10 000 запросов INSERT\UPDATE не напрягая базу • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 39
В базу нужно изредка (два-три раза в день) нужно вносить\обновлять большое количество данных. До 10 000 запросов. Скрипт не успевает их выполнить, отваливаясь по таймауту => было сделано разделение на части, обновление по 500 строк, с автоматическим перезапуском скрипта (строка - в терминологии таблиц базы данных). На каждую строку проверяется наличие ее в базе (по индексированному INT полю), если строка присутствует - выполняется UPDATE запрос, если нет - INSERT. Т.е. получается даже 20К запросов - 10К селектов, и столько же вставок\обновлений.
Периодически PDO выбрасывает исключение, что не может подключится к базе из-за того, что хостер временно блокирует доступ при превышении лимитов. Соответственно данные полностью не вносятся.
Таблицы InnoDB.
Как бы это дело разрулить, куда копать?

ps на локальном сервере проблемы не возникает Улыбка
KorolevSerge Отправлено: 22 Мая, 2013 - 16:02:10 • Тема: Что быстрее: поиск по индексу или по значению? • Форум: Вопросы новичков

Ответов: 1
Просмотров: 98
PHP:
скопировать код в буфер обмена
  1. $array = array( ... );
  2.  
  3. $search = 'text';
  4.  
  5. if (isset($array['text'])) ...
  6.  
  7. if (in_array('text', $array)) ...
  8.  
  9. if (array_key_exists('text')) ....
KorolevSerge Отправлено: 09 Ноября, 2012 - 10:04:49 • Тема: остановить апач под windows • Форум: Apache и другие веб-серверы

Ответов: 6
Просмотров: 2412
спасибо, работает.
KorolevSerge Отправлено: 09 Ноября, 2012 - 09:49:04 • Тема: остановить апач под windows • Форум: Apache и другие веб-серверы

Ответов: 6
Просмотров: 2412
я понимаю )
дело в том, что службы вообще нет.
ситуация: есть комп на котором ничего не установлено. чистая windows7. вставляю туда свою флешку выполняю команду
CODE (text):
скопировать код в буфер обмена
  1. Apache22\bin\httpd.exe -f "Apache22\conf\httpd.conf"

вуаля - сервер пашет. но службы нет. как остановить - не знаю.
кроме варианта убить процесс через диспетчер задач.
KorolevSerge Отправлено: 09 Ноября, 2012 - 09:39:08 • Тема: остановить апач под windows • Форум: Apache и другие веб-серверы

Ответов: 6
Просмотров: 2412
нет.
Это работает когда индеец ставится через инсталлятор и регистрируется как служба windows.
у меня же он запускается в консольном режиме
соответственно ответ вашей команды:
Неправильно имя службы
KorolevSerge Отправлено: 09 Ноября, 2012 - 09:20:52 • Тема: остановить апач под windows • Форум: Apache и другие веб-серверы

Ответов: 6
Просмотров: 2412
Сконфигурировал сервер (Apache+php+mysql). Разместил все это дело на флешке. Ношу с собой. Портативно, удобно. Но есть проблема. Не знаю как остановить апач.
запускается не как сервис windows
Запускаю с помощью батника:
Apache22\bin\httpd.exe -f "Apache22\conf\httpd.conf"

а как написать батник для остановки сервера?
-k stop не работает

пока прибиваю процессы через диспетчер. но хочется написать батник.

зы. denwer и иже с ним не предлагайте, есть ряд причин не использовать такие сборки.
KorolevSerge Отправлено: 04 Апреля, 2012 - 10:15:19 • Тема: CRUD готовое решение • Форум: Объектно-ориентированное программирование

Ответов: 1
Просмотров: 1938
Есть такая замечательная приблуда для CodeIgniter - Grocery CRUD. Здорово облегчает и ускоряет написание админок на этом фреймворке. Хочу спросить, может быть есть подобные библиотеки\классы не привязанные к какому-либо фреймворку? Пропытка адаптировать Grocery не увенчалась успехом, а гугл не понимает, чего я от него требую, - не могу сообразить какой запрос писать - выдает один шлак. Поделитесь ссылками, если кто знает что-то подобное.
KorolevSerge Отправлено: 12 Марта, 2012 - 18:38:51 • Тема: авторизация пользователей • Форум: Вопросы новичков

Ответов: 0
Просмотров: 70
есть таблица пользователей. в ней есть поле `role`
есть еще три таблицы
`permission` - перечисление различных прав (доступ в админку, создание, редактирование и т.п.),
`roles` - роли пользователей (Администарторы, Зарегистрированные, Модераторы и т.п.),
`perms_of_roles` - отношения ролей и соответствующих им прав.
Спойлер (Отобразить)
Спойлер (Отобразить)
Спойлер (Отобразить)
Теперь, что бы проверить право доступа к той или иной операции пишу так
PHP:
скопировать код в буфер обмена
  1. if ($user->authorized('edit_article')) { разрешаем доступ }
  2. if ($user->authorized('access_admin')) { разрешаем доступ }

В целом устраивает, хоть и кажется что что-то не так, но при каждом запросе приходится дергать данные из трех таблиц (permission, roles, perms_of_roles) и составлять соответствие прав доступа текущему пользователю.
Массив соответствий выглядит так:
Спойлер (Отобразить)
Здесь ключи массива - это ID роли из таблицы `roles`
Вопроса два.
1. можно ли составить запрос получения пользователя из таблицы `users` так, чтобы в ответе, помимо полей этой таблицы было еще одно поле с массивом прав доступа для роли этого пользователя.
2. Или разграничение прав делается как-то по другому?
KorolevSerge Отправлено: 08 Марта, 2012 - 01:16:18 • Тема: функция "Запомнить меня" • Форум: Вопросы новичков

Ответов: 4
Просмотров: 126
Спасибо. Вопрос исчерпан. Тему можно закрывать.

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB