我是php的新手,这可能是一个愚蠢的错误……但是我不知道发生了什么。我正在尝试使用php在数据库中创建一个表。我想用用户名命名该表。我正在使用变量$tableusername。这是我的代码
$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- 当我-变量结转。我对此很陌生- 因此,感谢您的帮助。
echo $tableusername
在您的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”
ID
please
然后,这向我表明错误与 “ & ”有关 。
将代码更改为包含单引号并执行后,现在没有回显了。
<?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_ *正在弃用过程中。
希望这可以帮助。