因此,我正在尝试使用php以及一个学校项目的统一性,在我尝试使用的解决方案中,它需要我为每个新用户创建一个新表来存储有关以下内容的唯一统计信息:他们。问题是,它不起作用。
<?php
$con = mysqli_connect('localhost', 'root', 'root', 'unityaccess');
//check the connection happened
if(mysqli_connect_errno())
{
echo "1: Connection failed"; //error code 1 = connection failed
exit();
}
$username = $_POST["name"];
$tablecheckquery = "SHOW TABLES IN 'unityaccess' WHERE 'Tables_in_unityaccess' = '".$username."';";
$result = mysqli_query($con, $tablecheckquery);
if($result !== false){
echo "6";
}
else{
$newtable = "CREATE TABLE IF NOT EXISTS '".$username."'(username VARCHAR(16) PRIMARY KEY)";
$res = mysqli_query($con, $newtable) or die ("7: Couldn't create table"); //error code 7 = table failed to be created
$insertuserquery = "INSERT INTO '".$username."' (username) VALUES ('" . $username . "');";
mysqli_query($con, $insertuserquery) or die("4: Insert player query failed"); //error code 4 = insert query failed
echo "4";
}
?>
因此,从这开始,我期待着,因为没有供用户使用的表,它可以制作表,而是吐出错误代码7,我也不知道为什么。
感谢所有帮助!
答案 0 :(得分:0)
您不需要在表名周围使用CREATE引号。更改为:
$newtable = "CREATE TABLE IF NOT EXISTS ".$username." (username VARCHAR(16) PRIMARY KEY)";
尽管如此,感觉确实没有必要为每个用户创建一个全新的表。实际上,这根本不是一种通用方法。我建议只为每个人使用一个用户表。