【发布时间】:2012-10-21 17:28:49
【问题描述】:
我对 php 很陌生。这可能是一个愚蠢的错误...但我不知道发生了什么。我正在尝试使用 php 在我的数据库中创建一个表。我想在用户名之后命名表。我正在使用变量$tableusername。这是我的代码
$sql="SELECT * FROM userdata WHERE username='$username'";
$result=mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
$tableusername = $row["username"];
}
$create = "CREATE TABLE `".$tableusername."` ('
. ' `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, '
. ' `please` VARCHAR(50) NOT NULL, '
. ' `make` VARCHAR(50) NOT NULL, '
. ' `this` VARCHAR(50) NOT NULL, '
. ' `work` VARCHAR(50) NOT NULL'
. ' )'
. ' ENGINE = myisam;";
mysql_query($create)
?>
<html>
<head>
</head>
<body>
You have successfully signed up. <?php echo $tableusername ?>
</body>
</html>
所以- 这将创建一个名为 $tableusername 的表。变量不会结转。但是 - 当我 echo $tableusername - 变量结转。我对此很陌生 - 所以任何帮助表示赞赏。
【问题讨论】:
-
请不要使用
mysql_*函数编写新代码。它们不再维护,社区已经开始deprecation process。看到 red box 了吗?相反,您应该了解prepared statements 并使用PDO 或MySQLi。如果你不能决定哪一个,this article 会帮助你。如果你选择 PDO,here is good tutorial。另见Why shouldn't I usemysqlfunctions in PHP? -
$username和$tableusername根据您的代码是相同的 :) -
为什么要为每个用户创建一个表?