-2

我需要根据每个用户的 ID 创建一个表,它存储在 $id 中。所以每个用户都有自己的日历。

对于用户 #23,创建的日历将是表“calendar23”,

所以我使用:

$id = 23;

CREATE TABLE calendar$id (.......

但它不起作用,我做错了什么?

提前致谢

古町

4

2 回答 2

1

再想想这个策略是否真的是正确的方法。它忽略了关系数据库管理系统的好处。而是为所有用户使用一个表,并使用每个用户 ID 标记条目。这样你的 sql 语句就变得更容易和安全了。

如果你真的想坚持你的方法,那么你必须准备声明:

$sql_stmt = sprintf('CREATE TABLE calendar%s (.......)', $id);

但这仍然非常不安全,因为它很容易受到 sql 注入攻击。阅读准备好的语句并使用 mysqli 或 PDO 扩展。

于 2013-08-16T05:33:15.610 回答
0

你可能会错过任何小事。尝试这个。

$id = "table23";
// Create table
$sql="CREATE TABLE Persons".$id."(FirstName CHAR(30),LastName CHAR(30),Age INT)";

// Execute query
if (mysqli_query($con,$sql))
  {
  echo "Table persons created successfully";
  }
else
  {
  echo "Error creating table: " . mysqli_error($con);
  }
于 2013-08-16T05:32:02.510 回答