使用for循环在PHP中创建具有整数名称的表
我试图用PHP在SQL中创建多个表,这些表需要在1920年到2017年之间用数字命名。我使用的是for循环,但由于在PHP是新手,我的代码似乎不起作用。回馈没有错误,也没有回馈任何东西。我做错了什么。任何帮助都将不胜感激使用for循环在PHP中创建具有整数名称的表,php,Php,我试图用PHP在SQL中创建多个表,这些表需要在1920年到2017年之间用数字命名。我使用的是for循环,但由于在PHP是新手,我的代码似乎不起作用。回馈没有错误,也没有回馈任何东西。我做错了什么。任何帮助都将不胜感激 <?php $con = new mysqli("---", "---", "---", "---"); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_con
<?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);
?>
此行不正确
for($i = 1920; i<=2017; $i++)
for($i=1920;i即使我认为如果您需要创建所有这些表,存在设计错误,代码中也几乎没有错误
for中缺少$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中看到错误。正如前面所说的,您不想创建所有这些表。真的,您不想。
改为增加一个Year
字段,并按年份对应用程序进行分组或排序,或其他任何操作。因此,您只需要一个具有灵活排序和分组功能的表。以下是一种更好的方法:
CREATE TABLE years
(
year int(4),
site_coordinator VARCHAR(66),
announcements VARCHAR(1000),
description VARCHAR(1000)
)
如果要插入(例如)2004年的数据,而不是像原始设计那样插入数据,请执行以下操作:
插入INT0 2004(站点协调人、公告、说明)值…
您将使用一个表使用年份列,如下所示:
插入年份(年份、现场协调人、公告、说明)值(2004年,“xxx”、“xxx”、“xxx”)…
如果要获取特定年份的所有行,可以执行以下操作:
从年份=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
专栏中有一个拼写错误的更正,你确定要创建那97个表吗?相信我,你不想创建所有这些表。似乎不是一个经过良好验证的架构,请你回答,但在Shakar的评论之后,我决定用mul创建一个表会更明智多列。很抱歉浪费了你的时间。还有,丢失的$是在输入信息时的一个输入错误,这不是我的原始代码…对此也很抱歉
<?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);
?>