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