Php 无法创建mysql表
我有一个桌子跟踪器项目,看起来像这样Php 无法创建mysql表,php,mysql,sql,database,mysqli,Php,Mysql,Sql,Database,Mysqli,我有一个桌子跟踪器项目,看起来像这样 tracker_item id heading trackerid 1 name 1 2 location 1 3 age 1 4 candidate 2 5 area 2 我希望使用标题下的参数根据trackerid创建不同的数据库表。 例如,根据上述表格跟踪工具项目,我希望创建两个表格 table1 id name location age
tracker_item
id heading trackerid
1 name 1
2 location 1
3 age 1
4 candidate 2
5 area 2
我希望使用标题下的参数根据trackerid创建不同的数据库表。
例如,根据上述表格跟踪工具项目,我希望创建两个表格
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循环并在循环之前创建
。您只希望循环通过连接添加列:
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))
我讨厌人们说“我没走那么远…”或“这个网站不会公开…”或“它只供学校使用,所以安全不重要…”。如果老师和教授从一开始就不谈论安全问题,那他们就是做错了。挑战他们。他们正在教授草率而危险的编码实践,学生们以后将不得不放弃这些实践。我也讨厌人们说“我以后再添加安全性…”或“安全性现在不重要…”或“忽略安全风险…”。如果第一次没有时间做正确的事情,那么以后什么时候才能有时间添加它?说,了解有关的语句。即使是这样也不安全@Jay Blanchard这只是一个在逻辑上工作的傀儡,我以后会处理安全问题,如果你能帮助我解决主要问题,我将不胜感激。错误来自我这边,你的代码已经工作了。非常感谢,关于你所说的安全性,我肯定会从第一天开始着手