如果不存在则创建表 - 意外的T_STRING

时间:2010-07-14 17:13:20

标签: php mysql database

我在尝试为我正在使用的网站创建表时遇到问题,这是我正在使用的数据库代码,但我在第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 个答案:

答案 0 :(得分:15)

您的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 :(得分:1)

首先,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();功能调用。当然,您必须先连接到数据库。

答案 2 :(得分:1)

您需要将该查询包装为双引号以将其存储为字符串(然后通过PHP在MySQL中运行查询)。