Вопрос по синтаксису INSERT в MySQL

Discussion in 'PHP' started by Digimortal, 13 Nov 2006.

  1. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    У меня тут вопросик появился насчет оператора INSERT в MySQL.
    В документации по MySQL синтаксис вот такой:
    Code:
    INSERT INTO tbl_name (aaa, bbb) VALUES(15,20);
    Но вот среди дампов БД мне встретился и такой вариант:
    Code:
    INSERT INTO `tbl_name`(`aaa`, `bbb`) VALUES ('12',  '16');
    Разница, как видно, в кавычках, обрамляющих имя таблицы и имена полей, и в расстановке побелов.
    Подскажите, почему так? Различие версий, или еще что?
     
    #1 Digimortal, 13 Nov 2006
    Last edited: 13 Nov 2006
    1 person likes this.
  2. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Эти записи эквивалентны. Названия полей можно обрамлять кавычками, а можно - нет
     
  3. guest3297

    guest3297 Banned

    Joined:
    27 Jun 2006
    Messages:
    1,246
    Likes Received:
    639
    Reputations:
    817
    Да кавычки могут быть как одинарными так иобратными данный синтаксис применяем везде в select update и так далее.
     
  4. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    ок, спасибо за ответы.
     
    #4 Digimortal, 14 Nov 2006
    Last edited: 14 Nov 2006
  5. SMiX

    SMiX Elder - Старейшина

    Joined:
    25 Jul 2005
    Messages:
    227
    Likes Received:
    55
    Reputations:
    29
    Советую поля всегда обрамлять в `такие кавычки`, а строки в '' или "".
     
  6. [hidden]

    [hidden] Elder - Старейшина

    Joined:
    5 Nov 2005
    Messages:
    70
    Likes Received:
    19
    Reputations:
    7
    Ну вообще по стандарту значения типа INTEGER не должны обрамляться кавычками, поэтому в примере они и не того..
    Названия полей стоит обрамлять обратными апострофами - по крайней мере у меня в самом начале изучения PHP с MySQL тестовый скрипт не заработал именно из-за того, что названия полей были без обрамления - с тех пор я их везде ставлю..
     
    1 person likes this.
  7. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    я всегда пишу в виде
    select `field` from `table` where `field2`='string'
     
  8. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    пробелы равно как и переводы строки в скрипте абсолютно ничего не значат