如何增加一个变量并插入sql php?

时间:2013-08-04 01:03:08

标签: php sql

这是我第一次编程,我需要一点帮助。 我有一个代码,我从表单中获得$ year,我想将其递增到结束年份并将结果插入数据库中:

include 'conect.php';

$user=  $_POST['user'];
$school= $_POST['school'];
$year= $_POST['year'];
$endyear= $_POST['endyear'];

插入数据库应重复这些变量,直到$ endyear,如下所示:

ROW 1:
user: John
school: UFPS
year: 2010 

ROW 2:
user: John
school: UFPS
year: 2011

ROW 3:
user: John
school: UFPS
year: 2012

如果我必须增加多个变量怎么办?例如:

$user= $_POST['user']; 
$school= $_POST['school']; 
$year= $_POST['year']; 
$endyear= $_POST['endyear']; 
$day= $_POST['startday']; 
$endday = $_POST['endday']; 

并增加到$ endyear和endday?

结果: 第1行:用户:John学校:UFPS年:2010年:1 第2行:用户:John学校:UFPS年:2011年:2 第3行:用户:John学校:UFPS年:2012年:3

3 个答案:

答案 0 :(得分:3)

假设您已针对SQL注入攻击清理了POST数据,则可以使用循环:

for( $y = $year; $y <= $endyear; $y++ )
{
   $query = "INSERT INTO [yourtablename] (user, school, year) VALUES ('$user', '$school', $y)";
   // execute query
}

您还可以在循环中构建和扩展查询,然后执行一次。

$query = "INSERT INTO [yourtablename] (user, school, year)";
for( $y = $year; $y <= $endyear; $y++ )
{
   $query .= "VALUES ('$user', '$school', $y)".($y < $endyear ? ',': '');
}
// execute query

答案 1 :(得分:0)

你想要的第一件事就是一个像样的PHP工具来连接你的数据库,比如PDO或像ADOdb这样的插件。假设您已经使用PDO构建了表结构,它将如下所示:

for( $i = intval($year); $i <= intval($endyear); $i++ )
{
   $sql = "INSERT INTO ".DATABASE_TABLE_NAME_CONSTANT." (user, school, year) VALUES (?,?,?)";
   $q = $conn->prepare($sql);
   $q->execute(array($user,$school,$i));
}

有关PDO herehere

的更多信息

你还应养成将所有表名保存在常量中的习惯。原因是某些托管服务将您限制为1个数据库。将其保留在常量中将允许您在同一数据库中运行项目的沙箱版本和生产版本。您只需要一个不同的前缀,就像在沙箱中一样,您可以使用sb_和生产中的表名为pr_加上前缀。例如:

define("USERS_TABLE", $config["tbl_prefix"]."users");

答案 2 :(得分:-1)

您可以使用auto_increment(在数据库上..我不知道您在使用什么)并将默认值设置为起始年份。