gpt4 book ai didi

php - 无法创建mysql表

转载 作者:搜寻专家 更新时间:2023-10-30 22:35:19 25 4
gpt4 key购买 nike

我有一个看起来像这样的表 tracker_item

tracker_item

id heading trackerid
1 name 1
2 location 1
3 age 1
4 candidate 2
5 area 2

我希望使用标题下方的参数根据 trackerid 创建不同的数据库表。例如,根据上面的表 tracker_item,我希望创建 2 个表

table1

id name location age


table 2
id candidate area

我试过的代码是

$sql="SELECT * FROM `tracker_item` where trackerid='".$trackerid."' ";
$result = mysqli_query($con, $sql);
if(mysqli_num_rows($result)>0)
{
while($row = mysqli_fetch_assoc($result))
{
echo $sql1 = "CREATE TABLE item (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,

".

$row['heading']


." VARCHAR(30) NOT NULL,


resume VARCHAR(50)
)";

}
if (mysqli_query($con, $sql1))
{
echo "Table created successfully";
}
else
{
echo "Error creating table: " . mysqli_error($con);
}
}

我得到的 $sql1 的输出是

CREATE TABLE item (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, resume VARCHAR(50) )
CREATE TABLE item (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, location VARCHAR(30) NOT NULL, resume VARCHAR(50) )
CREATE TABLE item (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, age VARCHAR(30) NOT NULL, resume VARCHAR(50) )

我希望 $sql1 的 o/p 看起来像下面这样,而不是多个表,以便可以在数据库中创建一个表

CREATE TABLE item ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, location VARCHAR(30) NOT NULL, age VARCHAR(50) )

谁能告诉我怎么做

最佳答案

您只需要修改您的 while 循环并在循环之前执行 CREATE。您只希望循环通过串联添加列:

if(mysqli_num_rows($result)>0)
{
$sql1 = "CREATE TABLE item (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, ";
while($row = mysqli_fetch_assoc($result))
{
$sql1 .= $row['heading']." VARCHAR(30) NOT NULL, ";
}
$sql1 .= "resume VARCHAR(50)) ";

if (mysqli_query($con, $sql1))
{
echo "Table created successfully";
}
else
{
echo "Error creating table: " . mysqli_error($con);
}
}

以这种方式连接整个查询,然后执行查询。

输出:

CREATE TABLE item (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, location VARCHAR(30) NOT NULL, age VARCHAR(30) NOT NULL, candidate VARCHAR(30) NOT NULL, area VARCHAR(30) NOT NULL, resume VARCHAR(50))

我讨厌人们说“我还没走那么远……”“这个网站不会公开……” “它只适用于学校,所以安全并不重要……”。如果老师和教授从第一天起就没有谈论安全,那他们就做错了。挑战他们。他们正在教授草率和危险的编码实践,学生以后将不得不忘记这些实践。我也讨厌人们说,“我稍后会添加安全性……”“现在安全性不重要了……””忽略安全风险……”。如果您没有时间第一次就做对,您以后什么时候才能找到时间来添加它?

关于php - 无法创建mysql表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38351631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com