2015-03-05 6 views
2

Что не так с sql? Я не знаю, что не так. Он продолжает давать синтаксические ошибки.Ошибка синтаксиса в CREATE TABLE SQL-запрос

$dbh->exec ("CREATE TABLE 'test' 
      (col1 CHAR (64) PRIMARY KEY, 
      col2 CHAR (64), 
      col3 CHAR (64), 
      col4 CHAR (64))") or die (print_r ($dbh->errorInfo(), true)); 

Я использую EasyPHP, только что установил его. Я пытаюсь создать таблицу, используя вышеприведенный код. Это ошибка, которую он возвращает. Я пробовал исправлять синтаксис много раз. Я честно считаю, что синтаксис верен. Что-то связано с конфигурацией моей установки EasyPHP, например, mysql настроен неправильно.

Array ([0] => 42000 [1] => 1064 [2] => У вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса, 'в строке 1)

Edit: Вот код, я использую для подключения:

function dbConnect ($dbname) { 
    $user = "root"; 
    $pass = ""; 
    $db = new PDO ("mysql:host=127.0.0.1;dbname=$dbname", $user, $pass); 
    if ($db) { 
     //echo "Connected to database." . "</br>"; 
    } 

    return $db; 
} 
+0

Можете ли вы показать нам, что стек трассировки выглядит? –

+0

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

+0

у вас есть продвижение, см. Ответы, не забудьте проверить один как правильный ;-) –

ответ

2

Изменение SQL для:

CREATE TABLE test 
      (col1 CHAR (64) PRIMARY KEY, 
      col2 CHAR (64), 
      col3 CHAR (64), 
      col4 CHAR (64)) 

Попробуйте с:

$dbh->exec ("CREATE TABLE test 
      (col1 CHAR (64) PRIMARY KEY, 
      col2 CHAR (64), 
      col3 CHAR (64), 
      col4 CHAR (64))") or die (print_r ($dbh->errorInfo(), true)); 
+0

Он избавился от сообщения об ошибке. Но когда я проверяю базу данных в phpadmin, таблица не существует. – jax

+0

@agentNil попробуйте выполнить запрос в phpmyadmin и посмотреть, что произойдет –

+0

@agentNil у вас есть продвижение? –

2

имена таблиц не идут внутри кавычек, изменить

CREATE TABLE 'test' 
      ^^

для

CREATE TABLE `test` // don't even need back ticks usually 
+0

Это то, что у меня было до этого. – jax

+0

Если бы у вас было это до того, то синтаксической ошибки не было бы, при этом ваш запрос будет работать нормально. –

+0

Я пробовал играть с кавычками, backticsk, но не работает. – jax

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