Php 用户存储自己的数据。Mysql表名取自会话变量
有人能帮我查一下密码吗,欢迎指路 我希望通过会话的每个用户都能创建表(每个用户都创建自己的表,其他人看不到)Php 用户存储自己的数据。Mysql表名取自会话变量,php,mysql,session,Php,Mysql,Session,有人能帮我查一下密码吗,欢迎指路 我希望通过会话的每个用户都能创建表(每个用户都创建自己的表,其他人看不到) 您的查询字符串中有一些错误。您有一个应该删除的双引号,表名应该用“而不是”包装。因此,您的代码应该如下所示: $sql = "CREATE TABLE `{$r['username']}` ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(3
您的查询字符串中有一些错误。您有一个应该删除的双引号,表名应该用“而不是”包装。因此,您的代码应该如下所示:
$sql = "CREATE TABLE `{$r['username']}` (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
即使与主题无关,您也应该问问自己,是否为每个用户创建一个表是最好的解决方案。您可以尝试修复php代码,并获得如下结果:
<?php
session_start();
if($_SESSION['user']==''){
header("Location:login.php");
}else{
$dbh=new PDO('mysql:dbname=something;host=127.0.0.1', 'something', 'something');
$sql=$dbh->prepare("SELECT * FROM users WHERE id=?");
$sql->execute(array($_SESSION['user']));
while($r=$sql->fetch()){
$sql = "CREATE TABLE `".$r['username']."` (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
try {
$dbh->exec($sql);
echo " created successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
}
$conn = null;
}
?>
如果您的代码是真实代码,那么您的代码中有语法错误。据我所知:/任何方向都会很好。链接或一些示例。。。。谢谢为什么每个用户创建一个表?为了“别人看不见”?如果是的话,你可以在那里看一看:代码与修复程序一起工作吗?谢谢没有代码仍然不工作。我在dreanweaver中没有发现任何语法错误。在Msql中没有插入任何内容。我尝试了代码,但仍然无法插入mysql。有可能吗?我确定答案。尝试将$conn->exec($sql)替换为$dbh->exec($sql)。因为您的pdo对象是$dbh,而不是$conn。
<?php
session_start();
if($_SESSION['user']==''){
header("Location:login.php");
}else{
$dbh=new PDO('mysql:dbname=something;host=127.0.0.1', 'something', 'something');
$sql=$dbh->prepare("SELECT * FROM users WHERE id=?");
$sql->execute(array($_SESSION['user']));
while($r=$sql->fetch()){
$sql = "CREATE TABLE `".$r['username']."` (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
try {
$dbh->exec($sql);
echo " created successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
}
$conn = null;
}
?>