允许用户仅为每个主题创建一个新表但只有一个表

时间:2012-08-31 04:47:30

标签: php mysql create-table

我正在尝试创建一些用户可以为主题创建表的内容,但只有一个主题表,并且在该主题表中,其他用户将能够添加到该主题表。

我需要创建一次主题表。所以对于前:

用户A创建一个新主题,这是一个关于橙子的新表。

然后其他用户就可以添加到该橙子表,但没有其他用户可以创建另一个名为oranges的表。

我应该如何解决这个问题?

让用户创建表格但只创建一次的代码是什么?

为用户提供创建表的能力还有多安全?

以下是我的一些代码,允许用户添加和显示数据库中的数据。

    <?php
    include 'connection.php';

    $query = "SELECT * FROM people";

    $result = mysql_query($query);

    While($person = mysql_fetch_array($result)) {
        echo "<h3>" . $person['Name'] . "</h3>";
        echo "<p>" . $person['Description'] . "</p>";
        echo "<a href=\"modify.php?id=" . $person['ID']. "\">Modify User</a>";
        echo "<span> </span>";
        echo "<a href=\"delete.php?id=" . $person['ID']. "\">Delete User</a>";
    }
?>
<h1>Create a User</h1>
<form action="create.php" method="post">
    Name<input type ="text" name="inputName" value="" /><br />
    Description<input type ="text" name="inputDesc" value="" />
    <br />
    <input type="submit" name="submit" />
</form>

你的建议会很有帮助!

2 个答案:

答案 0 :(得分:0)

以下是让用户只创建一次表的代码:

CREATE TABLE IF NOT EXISTS `orange` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `email` varchar(255) NOT NULL,
  `pass` varchar(255) NOT NULL,  
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=41 ;

答案 1 :(得分:0)

您可以在创建每个表之前检查表是否存在。此外,当您创建表时,请确保转义字符串(表名)并将其设为小写。在转换字符串(表名)之后,您应该始终检查表是否存在。

您可以在Google中搜索以了解有关检查表存在等的更多信息。