[英]How to increment a variable and insert sql php?
這是我的第一次編程,對此我需要一點幫助。 我有一個代碼,可以從表單中獲取$ 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以及結束日期?
結果:ROW 1:用戶:John學校:UFPS年:2010天:1 ROW 2:用戶:John學校:UFPS年:2011天:2 ROW 3:用戶:John學校:UFPS年:2012天: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
您想要的第一件事是一個不錯的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));
}
您還應該養成將所有表名保持常量的習慣。 原因是某些托管服務將您限制為1個數據庫。 將其保持不變將使您可以在同一數據庫中運行項目的沙盒版本和生產版本。 您所需要的只是一個不同的前綴,例如在沙箱中,為表名添加sb_前綴,在生產環境中為pr_前綴。 例如:
define("USERS_TABLE", $config["tbl_prefix"]."users");
您可以使用auto_increment(在數據庫上。我不知道您在使用什么)並將默認值設置為開始年份。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.