1

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

我需要只创建一次主题表。所以例如:

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

然后其他用户将能够添加到该 oranges 表,但没有其他用户可以创建另一个名为 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>

你的建议会很有帮助!

4

2 回答 2

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 ;
于 2012-08-31T05:03:39.540 回答
0

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

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

于 2012-08-31T05:18:30.373 回答