我已经看过了
我是PHP新手,我希望你们能给我指出正确的方向。我已经阅读了以下帖子并修改了其答案,但我显然没有做正确的事情:
Creating table with variable name php mysql
Use a variable as table name when creating a table in mysql
Create mysql table with php variable not working
特别是,这段代码我一直在努力适应我自己的需要,因为这是使用heredocs的为数不多的例子之一,这就是我们被教会使用的:
$create = <<<SQL
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
)
我的处境
我要我的登记簿。php使用用户选择的用户名创建一个新表。(如果用户已经登录,则无法访问Register.php,因此永远不可能复制表。)此表稍后将用于绘制表中包含的数据,这就是我没有设置PK的原因,因为该表永远不会被加入或与其他表共享其内容。(如果事实证明这是不可行的,我将添加一个自动递增的ID)。
问题所在
无法创建表。
我的登记簿。php编辑:根据建议,我在代码中添加了
我得到了一条关于将每个列名封装在引号中的语法的错误消息,因此我删除了这些错误消息,然后得到以下错误消息:
Could not query database1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 11
<?php
include('template.php');
if (isset($_POST['username']) and isset($_POST['password'])) {
$name = $mysqli->real_escape_string($_POST['username']);
$pwd = $mysqli->real_escape_string($_POST['password']);
$mail = $mysqli->real_escape_string($_POST['email']);
$first = $mysqli->real_escape_string($_POST['fname']);
$last = $mysqli->real_escape_string($_POST['lname']);
$query = <<<END
INSERT INTO p_users(username,password,email,fname,lname)
VALUES('{$name}','{$pwd}','
{$mail}','{$first}','{$last}')
END;
$table = <<<END
CREATE TABLE `$name` (
steps_per_day int,
energy_expenditure int,
distance_walked_per_day int,
bed_time int,
waking_time int,
hours_slept int,
num_daytime_naps int,
outdoor_temp int,
indoor_temp int
)
END;
if ($mysqli->query($table) !== TRUE) {
die("Could not query database" . $mysqli->errno . " : " . $mysqli->error);
header('Location:index.php');
}
if ($mysqli->query($query) !== TRUE) {
die("Could not query database" . $mysqli->errno . " : " . $mysqli->error);
header('Location:index.php');
}
}
$content = <<<END
<form method="post" action="register.php">
<input type="text" name="username" placeholder="username"><br>
<input type="password" name="password" placeholder="password"><br>
<input type="text" name="email" placeholder="email"><br>
<input type="text" name="fname" placeholder="first name"><br>
<input type="text" name="lname" placeholder="last name"><br>
<input type="submit" value="Register">
<input type="Reset" value="reset">
</form>
END;
echo $navigation;
echo $content;
?>