一尘不染

使用php变量创建mysql表不起作用

mysql

我是php的新手,这可能是一个愚蠢的错误……但是我不知道发生了什么。我正在尝试使用php在数据库中创建一个表。我想用用户名命名该表。我正在使用变量$tableusername。这是我的代码

$sql="SELECT * FROM userdata WHERE username='$username'";
$result=mysql_query($sql);

while ($row = mysql_fetch_assoc($result))
        {
            $tableusername = $row["username"];
        }

$create = "CREATE TABLE `".$tableusername."` ('
    . ' `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, '
    . ' `please` VARCHAR(50) NOT NULL, '
    . ' `make` VARCHAR(50) NOT NULL, '
    . ' `this` VARCHAR(50) NOT NULL, '
    . ' `work` VARCHAR(50) NOT NULL'
    . ' )'
    . ' ENGINE = myisam;";

mysql_query($create)


?>

<html>
<head>
</head>
<body>
You have successfully signed up. <?php echo $tableusername ?>
</body>
</html>

因此,这将创建一个名为的表$tableusername。变量不会保留。但是echo $tableusername- 当我-变量结转。我对此很陌生-
因此,感谢您的帮助。


阅读 315

收藏
2020-05-17

共1个答案

一尘不染

在您的SQL查询之后添加它-(它确实可以帮助并加快错误纠正时间)

or die("A MySQL error has occurred.<br />Error: (" . mysql_errno() . ") " . mysql_error());

回声 这在您的实例:

发生MySQL错误。错误:(1064)您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以在’‘附近使用正确的语法。’ IDINT
NOT NULL AUTO_INCREMENT主键,’。please第1行的“ VARCH”

然后,这向我表明错误与 ”有关


将代码更改为包含单引号并执行后,现在没有回显了。

   <?php
    $tableusername = "philip";
    $create = "CREATE TABLE `".$tableusername."` ("
        . " `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
        . " `please` VARCHAR(50) NOT NULL, "
        . " `make` VARCHAR(50) NOT NULL, "
        . " `this` VARCHAR(50) NOT NULL, "
        . " `work` VARCHAR(50) NOT NULL"
        . " )"
        . " ENGINE = myisam;";

    mysql_query($create)or die("A MySQL error has occurred.<br />Error: (" . mysql_errno() . ") " . mysql_error());

    ?>

注意:使用PHP中嵌入的SQL时,请参考MySQLi扩展。mysql_
*正在弃用过程中。

希望这可以帮助。

2020-05-17