SQL прецедент - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > PHP

PHP Форум как для начинающих программистов на PHP так и для профессионалов этого дела. Если нужно создать скрипт, функцию и т.д, но не знаете как, спросите у нас и мы вам подскажем. Здесь вы найдете примеры скриптов которые вы сможете использовать на сайтах своих серверов (онлайн, регистрация, семь печатей, топ игроков). Так же много книг и статей.

Ответ
Опции темы
Непрочитано 22.05.2015, 02:28   #1
Аватар для Dementor
Герой

Автор темы (Топик Стартер) SQL прецедент

Собственно, никогда ни сталкивался с подобным.

В базе храниться только одна запись:
tick=1(int), sum=80(int)

При запросе:
"SELECT tick, sum FROM table WHERE tick=1 AND sum='80dasda';"
Code: SQL
Он мне выкидывает эту запись! Как так? Понятное дело, что входящие данные я буду фильтровать, но как mySQL допускает такую ошибку? Запрос сделал напрямую через консоль mySQL и все равно выдает!

Т.е. как-будто он делает проверку "starthWith"

p.s. происходит такое только с типом данных int
Dementor вне форума Ответить с цитированием
Непрочитано 22.05.2015, 03:09   #2
Аватар для Gattsu
Пользователь

По умолчанию Re: SQL прецедент

привидение типа? если первое вхождение числа, а остальное не число, может отбрасываться
Gattsu вне форума Отправить сообщение для Gattsu с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 22.05.2015, 03:53   #3
Аватар для Gattsu
Пользователь

По умолчанию Re: SQL прецедент

так понятней будет
PHP код:
SELECT FROM `testWHERE `tick` = '1dsadasd' and `sum` = '79sdasdasda' 

а вот разница
PHP код:
SELECT FROM `testWHERE `tick` = '1dsadasd' and `sum` = 'a79sdasdasda' 

авто приведение использует литерала строки к типу соответствующему поля

все работает как должно работать


если строка начинается с цифр, но при этом содержит другие символы, то при привидении, числом будет все цифры до первой не цифры.

PHP код:
SELECT FROM `testWHERE `tick` = '1dsadasd' and `sum` = '79sdasd2312312312asda131231' 
Gattsu вне форума Отправить сообщение для Gattsu с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 22.05.2015, 08:40   #4
Аватар для Dementor
Герой

Автор темы (Топик Стартер) Re: SQL прецедент

Ну я так и понял, понял - что это нормально, но я не понимаю для чего это сделали.


P.S> Само программирование ведь такая вещь, если придумали, значит для чего-то, для какого-то случая.
Dementor вне форума Ответить с цитированием
Непрочитано 23.05.2015, 01:45   #5
Аватар для Deazer

По умолчанию Re: SQL прецедент

Да кому нужна эта тупая типизация данных. Пхп наше все
Deazer вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Гайд по установке Сервера PTS Redon Копия официального сервера 40 06.03.2019 23:51
Проблема с базой MySQL... Сергей_98 Lineage II 5 14.06.2013 09:19
zone_vertices tymboss Lineage II 0 19.03.2010 23:53
(Установка ОФФ Сервера Lineage2) Tonchi Копия официального сервера 2 03.01.2010 13:37
Install Microsoft SQL Server 2000 Tonchi Копия официального сервера 0 24.11.2007 00:40


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 03:30. Часовой пояс GMT +3.

Вверх