我需要根据每个用户的 ID 创建一个表,它存储在 $id 中。所以每个用户都有自己的日历。
对于用户 #23,创建的日历将是表“calendar23”,
所以我使用:
$id = 23;
CREATE TABLE calendar$id (.......
但它不起作用,我做错了什么?
提前致谢
古町
再想想这个策略是否真的是正确的方法。它忽略了关系数据库管理系统的好处。而是为所有用户使用一个表,并使用每个用户 ID 标记条目。这样你的 sql 语句就变得更容易和安全了。
如果你真的想坚持你的方法,那么你必须准备声明:
$sql_stmt = sprintf('CREATE TABLE calendar%s (.......)', $id);
但这仍然非常不安全,因为它很容易受到 sql 注入攻击。阅读准备好的语句并使用 mysqli 或 PDO 扩展。
你可能会错过任何小事。尝试这个。
$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);
}