[英]Updating MySQL Database of Users With PHP
我正在设置一个cron作业,每小时执行一次。 我需要下面的脚本基于字段ID从数据库中的每个用户提取值。
字段18是一个下拉列表,值从0到10。 在下面的PHP中,我想基于字段18的值更新$ val。 然后将$ val传递给每个用户的数据库中的字段45。
一切正常。 但是,插入到每个用户的值仅基于LAST用户的信息。 数据库中的最后一个用户将字段18设置为4,因此将2920发送到每个用户的字段45。 我究竟做错了什么?
另外...我意识到这对于潜在的SQL注入等来说看起来不太好。我只是在尝试进行此功能设置之前就尝试了。
<?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']");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.