Почему при использовании плейсхолдеров проверяется тип переменной, и в кавычки заключаются только string? Почему тип int не следует обрамлять кавычками и эскейпить? Пробовал числовые типы передавать как string - всё работает. В чем подвох?
если не заключить в кавычки строку, то она может совпасть с полем, а числа база сама преобразует к нужному типу эскейпить не надо, но надо приводить допустим к int перед вставкой
ок, еще такой вопрос - в prepared statements например надо передавать типы - например ssids. Я вот и думаю - ничего ж не будет, если передать все параметры как s ? Испытания показали, что всё работает.
tommyangelo Бывают исключения из правила - например в LIMIT ?,? нельзя передавать числа в кавычках. Еще иногда, довольно редко, мускул может отказаться использовать индекс на числовом поле, если в условии справа от знака равенства - строка вместо числа. Ну и при использовании SQLite надо помнить, что если передать строку - он и запишет в числовое поле строку.