php - 使用 PHP 更新用户的 MySQL 数据库

标签 php mysql cron

我正在设置一个每小时执行一次的 cron 作业。我需要下面的脚本根据字段 ID 从数据库中的每个用户提取一个值。

字段 18 是一个下拉列表,其值介于 0-10 之间。在我下面的 PHP 中,我想根据字段 18 的值更新 $val。然后将 $val 传递给每个用户的数据库中的字段 45。

一切正常。但是,插入到每个用户的值仅基于最后一个用户的信息。数据库中的最后一个用户将字段 18 设置为 4,因此 2920 将发送到每个用户的字段 45。我做错了什么?

另外...我意识到这对于潜在的 SQL 注入(inject)等来说看起来不太好。我只是想在处理之前设置功能。<​​/p>

<?php
// Create connection
 $con=mysqli_connect("host","username","password","database");

// Check connection
 if (mysqli_connect_errno($con))
   {
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
   }

  $getvalue = mysqli_query($con,"SELECT value FROM mydatabase WHERE thefieldid=18");

  while ($row = mysqli_fetch_array($getvalue)) {

  foreach($row as $rows) {


   $num = $rows['value'];

   if ($num == 0) { 
   $val = '660'; }

   if ($num == 1) { 
   $val = '990';  }

   if ($num == 2) { 
   $val = '1590'; }

   if ($num == 3) { 
   $val = '1955'; }

   if ($num == 4) { 
   $val = '2920'; }

   if ($num == 5) { 
   $val = '3885'; }

   if ($num == 6) { 
   $val = '4850';  }

   if ($num == 7) { 
   $val = '5400';  }

   if ($num == 8) { 
   $val = '3885';  }

   if ($num == 9) { 
   $val = '5400'; }

   if ($num == 10) { 
   $val = '7200';  }

   echo $num;
   mysqli_query($con, "UPDATE mydatabase SET value = $val WHERE thefieldid = 45");

}   
}

 ?> 

最佳答案

您是否需要过滤更新以针对循环当前行中的特定用户?

e.g $getvalue = mysqli_query($con,"SELECT value, userid FROM 
mydatabase WHERE thefieldid=18");

..

mysqli_query($con, "UPDATE mydatabase SET value = $val 
WHERE thefieldid = 45 AND userid= $row['userid']");

关于php - 使用 PHP 更新用户的 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17710486/

相关文章:

ssh - screen -r 的 bash 脚本

php mysql : joining two tables

php - 在两次之间均匀分布值

php - 如何将第二列和第二列包装在循环内?

php - 数据库错误 1452

php - Yii2 简单的喜欢不喜欢按钮保存在数据库中

python - 使用 cronjob 运行 Python 进程并检查它是否仍在每分钟运行

php - 如何在 PHP 中提取通过 Python 发送的 gzip POST 请求

PHP/MYSQL 回显查询总数

lambda - AWS Lambda 可以运行多个特定的 cron 作业吗?