猿问

将数据从 while 循环插入到数据库 php 中

我正在尝试将数据从这些 while 循环发布到我的数据库中。它可以帮助我在特定范围内获得每月周期。我想选择日期并将日期与其他数据一起输入到我的数据库中。我被困住了,请对我放轻松。


 // Calculate interest

$intrest_loan = $loan_amount * $intrest / 100;

$monthly_payment = $loan_amount / $tenor;


// echo $intrest_loan;

// echo $monthly_payment;


$date = $start;


while ($date <= $end)

{

    $date = date('Y-m-d', strtotime($date . ' +1 month'));

    // echo $date . "\n";

    $sql = "insert into collection (period, amount_collected) values ($date, $monthly_payment)";

    $resultn = mysqli_query($connection, $sql);

    if($resultn) {


    }else{

        echo "<p>Failed to load collections</p>";

    }

}

已编辑的代码。


HUX布斯
浏览 133回答 1
1回答

狐的传说

假设您正在使用,那么我希望这可能有所帮助。为了与关于2个断开连接的循环的注释保持一致,您可以/应该组合成一个循环,其中计算日期值并用作sql语句的输入。由于您发布了一段代码而不是完整的东西,因此不可能说您的sql是否容易受到sql注入的影响,但是在涉及金钱的情况下,明智的做法是不要冒险并尝试减轻恶意攻击 - 因此使用mysqliprepared statement.该类具有多种方法来帮助操作日期,在这种情况下,可以非常清楚地完成月份的添加,如下所示。DateTime实质上,您创建带有占位符 () 的 sql 语句,并在运行时将这些占位符绑定到变量。准备好语句后,可以根据需要多次执行它,而几乎没有额外的开销。?/* some example / dummy dates ~ source unknown */$str_date_start='2020-01-01';$str_date_end='2021-01-01';/* create a prepared statement */$sql='insert into `collection` ( `period`, `amount_collected` ) values (?,?)';$stmt=$conn->prepare( $sql );$stmt->bind_param( 'ss', $date, $monthly_payment );&nbsp; &nbsp; &nbsp;/* original repayment calculations - corrected spelling of interest*/$interest_loan = $loan_amount * $interest / 100;$monthly_payment = $loan_amount / $tenor;/* create new date objects */$start=new DateTime( $str_date_start );$end=new DateTime( $str_date_end );$interval=new DateInterval('P1M');/* make sure we start AT the start */$start->sub( $interval );while( $start < $end ){&nbsp; &nbsp; $start->add( $interval );&nbsp; &nbsp; $date=$start->format('Y-m-d 00:00:00');&nbsp; &nbsp; $stmt->execute();}$stmt->close();$conn->close();
随时随地看视频慕课网APP
我要回答