2013-10-24 3 views
0

Я создал некоторые основные таблицы для своей компании и столкнулся с этой небольшой проблемой.Невозможно создать таблицу под названием inner

Когда я отправляю этот код с таким обычным именем, как hello и т. Д., Он работает нормально, но когда я вызываю таблицу «внутренний» или «внутренний», она не хочет работать.

$con = mysqli_connect($hostname, $username, $password, $db_name) or die(mysql_error()); 
if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
mysqli_query($con,"CREATE TABLE inner ( 
              inner_pck_dimension    varchar       (14), 
              inner_pck_weight    Int        (5), 
              inner_pck_barcode    varchar       (15), 
              inner_package_paper    Int        (5), 
              inner_package_plastic   Int        (5), 
              inner_package_other    varchar       (20) 
             )"); 
    echo "Table Created"; 

Может ли кто-нибудь сказать мне, почему это так? Мое единственное предположение заключается в том, что внутреннее является зарезервированным словом для объединений.

+2

не могли просто использовать другое имя, чтобы избежать таких ситуаций? – Carlos

+1

было бы неплохо, если бы вы назвали его inner_tb или innertb или что-то в этом роде, использование зарезервированного слова вызовет много проблем, даже если вы создадите таблицу, используя обратный тик, вам нужно следить за ней, используя select, insert, обновление и другие запросы в той же таблице –

+1

Если у вас есть это подозрение, посмотрите на [this] (http://dev.mysql.com/doc/refman/5.6/en/reserved-words.html), что вы предположим право. – glglgl

ответ

3

Внутреннее, вероятно, просто зарезервированное слово (см. «Внутреннее соединение»). используйте обратные ссылки для имен для борьбы с этим («` inner` »)

+1

кстати: вы можете избежать этого alltogether. При использовании обратных сигналов все время становится немного старым из вас, вы не привыкли к этому, что дает вам больше проблем (от парня с названием «имя» в столбце, которое выделяет такие проблемы :)) – Nanne

+0

Спасибо за ваш ответ. Я намеревался использовать другое имя для таблицы, я просто хотел подтвердить свои подозрения. – Floyd

1

Да, я рекомендую использовать зарезервированные слова для имен таблиц, но вы можете обычно обходить это с помощью« внутреннего », если включен режим ANSI SQL или« внутренний »для назад клещи

Ответ перефразировать от this answer

Смежные вопросы