如何用php创建一个mysql表,我们可以从mysql数据库值(用户会话)中设置表名?

exdqitrt  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(280)

我想用php创建一个mysql表,在这个表中我可以根据mysql数据库的特定用户的表列值设置表名。在下面的代码中,我试图通过将表名与存储名称(来自数据库)的变量相等来实现这一点,但每次出现错误都意味着它不起作用,请帮助我!

<?php
session_start();
include_once 'dbconnect2.php';

if(!isset($_SESSION['user']))
{
  header("Location: index.php");
}
$res=mysqli_query($con, "SELECT * FROM users WHERE user_id=".$_SESSION['user']);
$userRow=mysqli_fetch_assoc($res);

if($userRow['tableid']!=1)
{
    $user_id = $userRow['user_id'];

    $createtable="  CREATE TABLE `id`='$user_id' (
                        `id` int(5) NOT NULL,
                        `topic` int(5) NOT NULL,

                        `ptopic` varchar(25) NOT NULL,
                        ADD PRIMARY KEY (`id`)

                    ) ENGINE=MyISAM DEFAULT CHARSET=latin1";
    $resulttid = mysqli_query($con, $createtable);
    if($resulttid)   {
        $tablequery = "UPDATE `users` SET `tableid`='1' WHERE `user_id` = $user_id";      
        $resulttblquery = mysqli_query($con, $tablequery); 
    }else{ 
        echo "error";
    }
}
?>
x8goxv8g

x8goxv8g1#

将您创建的表代码替换为下面的代码,这样您就可以从php变量中创建表名,并确保不带引号的表名可以由服务器默认字符集中的任何字母数字字符组成

$createtable=" CREATE TABLE $user_id(
                    `id` int(5) NOT NULL,
                    `topic` int(5) NOT NULL,
                    `ptopic` varchar(25) NOT NULL,
                    PRIMARY KEY (`id`)

                ) ENGINE=MyISAM DEFAULT CHARSET=latin1";

相关问题