Создать таблицу, если она не существует - неожиданно T_STRING - PullRequest
1 голос
/ 14 июля 2010

У меня проблема с попыткой создать таблицу для веб-сайта, над которым я работаю, вот код базы данных, который я использую, но я получаю сообщение об ошибке в строке 2.

<?php
   CREATE TABLE IF NOT EXISTS 'speakers' (
   `id` int(11) unsigned NOT NULL auto_increment,
   `name` varchar(255) NOT NULL default '',
   `image` varchar(255) NOT NULL default '',
   `bio` varchar(500) NOT NULL default '',
   `position` int(10) unsigned NOT NULL default '0',
   `status` tinyint(2) NOT NULL default '1',
   PRIMARY KEY  (`id`)
   ) ENGINE=MyISAM  DEFAULT CHARSET=utf8
?>

Я просто не могу найти, где у меня есть проблема, и могу использовать вашу помощь.

Вот ошибка, которую я получаю:

Parse error: syntax error, unexpected T_STRING in /public_html/create_db.php on line 2

Ответы [ 3 ]

15 голосов
/ 14 июля 2010

Ваша команда SQL не является php-кодом.Это php-парсер, который выдает ошибку, пытаясь интерпретировать этот код.

Должно быть что-то вроде:

<?php
   $sql = "CREATE TABLE IF NOT EXISTS `speakers` (
   `id` int(11) unsigned NOT NULL auto_increment,
   `name` varchar(255) NOT NULL default '',
   `image` varchar(255) NOT NULL default '',
   `bio` varchar(500) NOT NULL default '',
   `position` int(10) unsigned NOT NULL default '0',
   `status` tinyint(2) NOT NULL default '1',
   PRIMARY KEY  (`id`)
   ) ENGINE=MyISAM  DEFAULT CHARSET=utf8";

   mysql_query($sql);
?>

См. Примеры здесь: http://www.php.net/manual/en/book.mysqli.php

1 голос
/ 14 июля 2010

Вам нужно заключить этот запрос в двойные кавычки, чтобы сохранить его в виде строки (а затем выполнить запрос в MySQL через PHP).

1 голос
/ 14 июля 2010

Сначала SQL должен выглядеть так:

CREATE TABLE IF NOT EXISTS `speakers` (
    `id` int(11) unsigned NOT NULL auto_increment,
    `name` varchar(255) NOT NULL default '',
    `image` varchar(255) NOT NULL default '',
    `bio` varchar(500) NOT NULL default '',
    `position` int(10) unsigned NOT NULL default '0',
    `status` tinyint(2) NOT NULL default '1',
    PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

и второе - вы должны передать его mysql_query (); вызов функции. Конечно, вы должны сначала подключиться к БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...