PHP.SU

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

Страниц (12): « 1 2 3 4 [5] 6 7 8 9 ... » В конец

> Найдено сообщений: 176
spsu Отправлено: 11 Апреля, 2013 - 00:49:43 • Тема: Непонятное поведение is_numric • Форум: Вопросы новичков

Ответов: 27
Просмотров: 718
caballero пишет:
Цитата:
Зн. сделаю генерацию массива таблиц с данными о типах полей.

типы полей можно выбирать с информационной схемы Бд - не надо ничего генерировать

Зачем делать лишний запрос?
Каждый раз\да даже один раз.
Мало вижу в этом смысла.
Если можно сгенерировать сразу из xml\uml схемы массив с типами полей, и сразу же запрос для ссоздание БД.
spsu Отправлено: 11 Апреля, 2013 - 00:42:00 • Тема: Непонятное поведение is_numric • Форум: Вопросы новичков

Ответов: 27
Просмотров: 718
Цитата:
как по твоему сервер БД отличит без кавычек это строка или имя поля?

Да тут недочет... Зн. сделаю генерацию массива таблиц с данными о типах полей.
Всем спасибо.
spsu Отправлено: 11 Апреля, 2013 - 00:31:21 • Тема: Непонятное поведение is_numric • Форум: Вопросы новичков

Ответов: 27
Просмотров: 718
Цитата:
иньекцию словите на раз

Как?
В принципе сейчас подумал, как вариант как в Propel сделано.
На основе схемы генерируется таблица , и данные в какой таблице какие типы полей..
Цитата:
представь что у тебя в строковом поле целое число - ты передаешь параметр проверяешь что он целое и генеришь SQL который выдает ошибку.

Откуда ошибка?
Строковые параметры можно передавать,... И без кавычек.
spsu Отправлено: 11 Апреля, 2013 - 00:15:09 • Тема: Непонятное поведение is_numric • Форум: Вопросы новичков

Ответов: 27
Просмотров: 718
OrmaJever пишет:
spsu вы хотите сделать из мухи слона.
Если у вас в запрос нужно вставить строку или число то пропустить её через mysqli_real_escape_string и возьмите в кавычки в запросе, если там может быть только число то приведите переменую к инту и всё.
(Добавление)
Конешно из одной строки можно сделать десять, но лично я этого не понимаю.

Мной движет лень поэтому я написал класс наследник от mysqli который имеет метод insert.
Туда передается ассоциативный массив, каждый ключ имя поля значение значение этого поля.
Вот значения от-туда автоматически приводятся в нужный вид и формируется INSERT запрос.
Все, это как мне кажется лучше чем каждый раз писать простые INSERT руками, подготавливая данными руками..
+Однажды можно забыть проэкранировать данные и будет беда.
А так кол-во кода уменшается.
И помоему это неплохой подход.
spsu Отправлено: 11 Апреля, 2013 - 00:06:38 • Тема: Непонятное поведение is_numric • Форум: Вопросы новичков

Ответов: 27
Просмотров: 718
caballero, я автоматически хочу определять тип переменной и в зависимости от этого подготавливать ее к вставке в запрос соответсвенно строки надо заключать в кавычки и экранировать опасные символы, а строки которые состоят только из чисел\числа можно передавать как есть.
Вот конечная цель.

Цитата:
зачем и как?

См. выше.

В принципе все что мне надо было я узнал.
spsu Отправлено: 10 Апреля, 2013 - 23:56:33 • Тема: Непонятное поведение is_numric • Форум: Вопросы новичков

Ответов: 27
Просмотров: 718
OrmaJever , Суть в том чтобы узнать что это число\строка\NULL.
И в зависимости от этого подготовить ее к запросу(переменную).
spsu Отправлено: 10 Апреля, 2013 - 23:52:15 • Тема: Непонятное поведение is_numric • Форум: Вопросы новичков

Ответов: 27
Просмотров: 718
Цитата:
зачем там регулярки? если будет непробельный символ проверка сработает а одними пробелами какая иньекция?

Рег-ка для проверки типа.
Если это строка то через intval привести к int и сувать в запрос.
Иначе escape_string строку в кавычки и в запрос.
Все это для автоматической очистки параметра перед добавкой в sql запрос.
Чтоб рег-но не юзать escape_string, шаблоны(mysqli::prepare) не подходят. Т.к запрос динамически составляется.

Цитата:
лично я проверяю на >0

То есть полученную переменную из вне сразу так проверяете?
spsu Отправлено: 10 Апреля, 2013 - 23:22:50 • Тема: Непонятное поведение is_numric • Форум: Вопросы новичков

Ответов: 27
Просмотров: 718
OrmaJever
Регуляркой будет как мне кажется очевидней, я бы например не сразу бы понял смысл такой манипуляции если бы встретил ее в коде.
Хотя не надо в таком случае проверять тип переменной перед передачей в preg_match.
Если юзать рег-ку.
spsu Отправлено: 10 Апреля, 2013 - 23:08:53 • Тема: Непонятное поведение is_numric • Форум: Вопросы новичков

Ответов: 27
Просмотров: 718
Ну intval то что игнорирует прлбел удобно, т.к от sql-inj удобно защищать если числовой параметр ожидается.
Прийдетса рег-кой чекать.
spsu Отправлено: 10 Апреля, 2013 - 22:57:19 • Тема: Проблемы с установкой geoip • Форум: Администрирование *nix

Ответов: 3
Просмотров: 2166
Цитата:
Ignoring installed package pecl/geoip

Он установлен, кэш попробуйте очистить если он есть у pecl.
spsu Отправлено: 10 Апреля, 2013 - 22:56:13 • Тема: Непонятное поведение is_numric • Форум: Вопросы новичков

Ответов: 27
Просмотров: 718

Выводит:
bool(true)
Почему?
В док-ции написано:
Цитата:
Проверяет, является ли данная переменная числом. Строки, содержащие числа, состоят из необязательного знака, любого количества цифр, необязательной десятичной части и необязательной экспоненциальной части. Так, +0123.45e6 является верным числовым значением. Шестнадцатеричная запись (0xFF) также допускается, но только без знака, десятичной и экспоненциальной части.

Функц. убирает пробелы перед проверкой?
spsu Отправлено: 10 Апреля, 2013 - 00:04:57 • Тема: Вынести часть sql запроса в константу • Форум: Вопросы новичков

Ответов: 3
Просмотров: 176
Суть в том насколько это правильно.

Цитата:
SELECT * FROM ...

Нет, этот вариант не подходит.
Причин много...
Одна из них:
IP хранятся в таблице в виде числа, преобразованного через INET_ATON
Соотвественно на выходе нужно
CODE (SQL):
скопировать код в буфер обмена
  1.  SELECT INET_NTOA(`ip`) AS `ip`
spsu Отправлено: 09 Апреля, 2013 - 23:38:55 • Тема: Вынести часть sql запроса в константу • Форум: Вопросы новичков

Ответов: 3
Просмотров: 176
Насколько этично это*?
У меня запрос SELECT и там перечислены колонки которые надо выбирать десяток примерно.
Запрос на выборку с разными условиями встречается часто, насколько этичо вынести поля в константу?
Что-то вроде:
PHP:
скопировать код в буфер обмена
  1.  
  2. define('USER_FIELDS', '`id`, `row`, `pswd`.....');
  3.  
  4. $query = "SELECT ".USER_FIELDS."FROM `users` ....."
  5.  

Насколько это неправильная затея?
БД mysql.
Для выполнения запрсов юзаю mysqli.
А то имена столбцов неплохо место в коде занимают.
spsu Отправлено: 07 Апреля, 2013 - 07:11:29 • Тема: Как организовать? • Форум: Программирование на PHP

Ответов: 4
Просмотров: 797
Написать разработчику что нужно API это если парсить... Каждый раз для проверки соответсвия цены слишком накладно по рес-сам выйдет.
spsu Отправлено: 04 Апреля, 2013 - 00:15:46 • Тема: Если результат пустой • Форум: Вопросы новичков

Ответов: 10
Просмотров: 1070
PHP:
скопировать код в буфер обмена
  1.  
  2. if (!$row = mysql_fetch_assoc($result)){
  3.    //Тут тото
  4. }
  5.  
  6.  
  7.  

Страниц (12): « 1 2 3 4 [5] 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB