我正在尝试用PHP在SQL中创建多个表,这些表需要在1920年到2017年之间用数字命名。我使用for循环,但是在PHP中是新的,我的代码似乎不起作用。没有给出任何错误,也没有回复任何错误。我究竟做错了什么。任何帮助将不胜感激!
<?php
$con = new mysqli("---", "---", "---", "---");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
for($i = 1920; i<=2017; $i++)
{
$sql="CREATE TABLE `".$i."` (site_coordinator VARCHAR(66),aanouncements VARCHAR(1000),description VARCHAR(1000)";
// Execute query
if (mysqli_query($con,$sql))
{
echo "Table ";
echo $table;
echo "created successfully";
}
else
{
echo "Error creating table: " . mysqli_error($con);
}
}
mysqli_close($con);
?>
答案 0 :(得分:1)
此行不正确
for($i = 1920; i<=2017; $i++)
应该是
for($i = 1920; $i<=2017; $i++)
你错过了$
答案 1 :(得分:0)
即使我认为如果您需要创建所有表格,也存在设计误解,您的代码中几乎没有错误
查询中缺少$ in,查询中没用引号,查询末尾缺少括号。
这是正确的代码:
<?php
$con = new mysqli("---", "---", "---", "---");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
for($i = 1920; $i<=2017; $i++)
{
$sql="CREATE TABLE ".$i." (site_coordinator VARCHAR(66),aanouncements VARCHAR(1000),description VARCHAR(1000))";
// Execute query
if (mysqli_query($con,$sql))
{
echo "Table ";
echo $table;
echo "created successfully";
}
else
{
echo "Error creating table: " . mysqli_error($con);
}
}
mysqli_close($con);
?>
要轻松调试,使用echo $sql
之类的内容打印查询,然后手动执行查询,您将看到mysql中的错误。
答案 2 :(得分:0)
正如已经说过的那样,您不想创建所有这些表。真的,你没有。
换一个额外的Year
字段,然后按年份制作您的应用程序组,或排序等等。因此,您只需要一个具有灵活排序和分组功能的单个表。
答案 3 :(得分:0)
这是一个更好的方法,你正在尝试做什么:
CREATE TABLE years
(
year int(4),
site_coordinator VARCHAR(66),
announcements VARCHAR(1000),
description VARCHAR(1000)
)
如果要插入2004年的数据,而不是像原始设计那样插入数据:
INSERT INT0 2004 (site_coordinator, announcements, description) VALUES ...
您将使用单个表使用年份列,如下所示:
INSERT INTO years (year, site_coordinator, announcements, description) VALUES (2004, "xxx", "xxx", "xxx") ...
如果要获取特定年份的所有行,请执行以下操作:
SELECT * FROM years WHERE year = 2004
因此,生成的PHP代码就像这样简单:
<?php
$con = new mysqli("---", "---", "---", "---");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="CREATE TABLE `years` (year INT(4), site_coordinator VARCHAR(66), announcements VARCHAR(1000), description VARCHAR(1000) )";
// Execute query
if (mysqli_query($con,$sql))
{
echo "Table years created successfully";
}
else
{
echo "Error creating table: " . mysqli_error($con);
}
mysqli_close($con);
?>
请注意列announcements