Disadvantages of quoting integers in a Mysql query?

I am curious about the disadvantage of quoting integers in MYSQL queries

For example

SELECT col1,col2,col3 FROM table WHERE col1='3';

VS

SELECT col1,col2,col3 FROM table WHERE col1= 3; 

If there is a performance cost, what is the size of it and why does it occur? Are there any other disavantages other that performance?

Thanks Андрей

Редактировать: Причина этого вопроса
1. Потому что я хочу узнать разницу, потому что мне любопытно
2. Я экспериментирую со способом передачи составных ключей из моей базы данных в моем php-коде как psudo-Id-keys (PIK). Эти PIK используются для нацеливания записи. Например, с учетом первичного ключа (AreaCode, Category, RecordDtm)

Мой PIK в URL-адресе будет выглядеть так:

index.php?action=hello&Id=20001,trvl,2010:10:10 17:10:45

И я бы выбрал эту запись следующим образом:

$Id = $_POST['Id'];//equals 20001,trvl,2010:10:10 17:10:45
$sql = "SELECT AreaCode,Category,RecordDtm,OtherColumns.... FROM table WHERE (AreaCode,Category,RecordDtm) = ({$Id});
$mysqli->query($sql):
......and so on.

На этом этапе запрос не будет работают из-за даты и времени (которые должны быть указаны в кавычках) и открыты для внедрения sql, потому что я не избежал этих значений. Учитывая тот факт, что я не всегда буду знать, как построены мои PIK, я бы написал функцию, разделяющую Id PIK на запятые, очищающую каждую часть с помощью real_escape_string и возвращающую ее вместе с указанными значениями. Например: $ Id = "'20001', 'trvl', '2010: 10: 10 17:10:45'" Конечно, в этой функции, которая разбивается на части и очищает идентификатор, я мог бы проверить, является ли значение числом или нет. Если это число, не цитируйте его. Если это не строка, укажите ее в кавычках.

5
задан andrew 9 February 2011 в 04:27
поделиться