Зн. сделаю генерацию массива таблиц с данными о типах полей.
типы полей можно выбирать с информационной схемы Бд - не надо ничего генерировать
Зачем делать лишний запрос?
Каждый раз\да даже один раз.
Мало вижу в этом смысла.
Если можно сгенерировать сразу из xml\uml схемы массив с типами полей, и сразу же запрос для ссоздание БД.
spsu вы хотите сделать из мухи слона.
Если у вас в запрос нужно вставить строку или число то пропустить её через mysqli_real_escape_string и возьмите в кавычки в запросе, если там может быть только число то приведите переменую к инту и всё. (Добавление)
Конешно из одной строки можно сделать десять, но лично я этого не понимаю.
Мной движет лень поэтому я написал класс наследник от mysqli который имеет метод insert.
Туда передается ассоциативный массив, каждый ключ имя поля значение значение этого поля.
Вот значения от-туда автоматически приводятся в нужный вид и формируется INSERT запрос.
Все, это как мне кажется лучше чем каждый раз писать простые INSERT руками, подготавливая данными руками..
+Однажды можно забыть проэкранировать данные и будет беда.
А так кол-во кода уменшается.
И помоему это неплохой подход.
caballero, я автоматически хочу определять тип переменной и в зависимости от этого подготавливать ее к вставке в запрос соответсвенно строки надо заключать в кавычки и экранировать опасные символы, а строки которые состоят только из чисел\числа можно передавать как есть.
Вот конечная цель.
зачем там регулярки? если будет непробельный символ проверка сработает а одними пробелами какая иньекция?
Рег-ка для проверки типа.
Если это строка то через intval привести к int и сувать в запрос.
Иначе escape_string строку в кавычки и в запрос.
Все это для автоматической очистки параметра перед добавкой в sql запрос.
Чтоб рег-но не юзать escape_string, шаблоны(mysqli::prepare) не подходят. Т.к запрос динамически составляется.
Цитата:
лично я проверяю на >0
То есть полученную переменную из вне сразу так проверяете?
OrmaJever
Регуляркой будет как мне кажется очевидней, я бы например не сразу бы понял смысл такой манипуляции если бы встретил ее в коде.
Хотя не надо в таком случае проверять тип переменной перед передачей в preg_match.
Если юзать рег-ку.
Проверяет, является ли данная переменная числом. Строки, содержащие числа, состоят из необязательного знака, любого количества цифр, необязательной десятичной части и необязательной экспоненциальной части. Так, +0123.45e6 является верным числовым значением. Шестнадцатеричная запись (0xFF) также допускается, но только без знака, десятичной и экспоненциальной части.
Нет, этот вариант не подходит.
Причин много...
Одна из них:
IP хранятся в таблице в виде числа, преобразованного через INET_ATON
Соотвественно на выходе нужно
Насколько этично это*?
У меня запрос SELECT и там перечислены колонки которые надо выбирать десяток примерно.
Запрос на выборку с разными условиями встречается часто, насколько этичо вынести поля в константу?
Что-то вроде: