我的创建表代码找不到问题

时间:2019-08-23 21:44:18

标签: php mysql mamp

因此,我正在尝试使用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,我也不知道为什么。

感谢所有帮助!

1 个答案:

答案 0 :(得分:0)

您不需要在表名周围使用CREATE引号。更改为:

$newtable = "CREATE TABLE IF NOT EXISTS ".$username." (username VARCHAR(16) PRIMARY KEY)";

尽管如此,感觉确实没有必要为每个用户创建一个全新的表。实际上,这根本不是一种通用方法。我建议只为每个人使用一个用户表。