php - 将数据从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>";
}
}
编辑的代码。
解决方案
假设您正在使用,mysqli
那么我希望这可能会有所帮助。为了与关于 2 个断开连接的循环的评论保持一致,您可以/应该组合成一个循环,在该循环中计算日期值并将其用作 sql 语句的输入。当您发布了一段代码而不是完整的代码时,不可能说您的 sql 是否容易受到 sql 注入的影响,但是在涉及金钱的情况下,明智的做法是不要冒险并尝试减轻恶意攻击 - 因此使用一个prepared 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 );
/* 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 ){
$start->add( $interval );
$date=$start->format('Y-m-d 00:00:00');
$stmt->execute();
}
$stmt->close();
$conn->close();
推荐阅读
- github - 如何使用环境变量或类似的东西在 pyproject.toml 中指定 github 访问令牌?
- java - 仅将我的应用程序中的数据更新给活动用户
- javascript - 如何在引导下拉菜单中定位插入符号
- javascript - 如何不清除输入字段onClick
- javascript - 后台脚本中的 chrome.webRequest 侦听器仅在打开扩展程序时触发?
- python - 如何为张量的每个切片运行迭代 2D 卷积?
- swift - SwiftUI 动画错误?
- python - 无法将 Tensorflow ssd_mobilenet_v1_fpn_coco 模型冻结到冻结 (.pb) 文件中
- c++ - 处理二进制文件 - 显示垃圾
- python - 如何在整数字符串上使用 eval() 函数?