无法使用PHP更新SQL列

时间:2019-10-05 13:03:06

标签: php sql cron

我创建了一个由每周CronJob触发的PHP脚本。 如果最后一次活动的日期超过2周,则CronJob触发后,该字段将变为红色,并且将向特定的人发送电子邮件。

我可以获取需要邮寄的数据,并且已经可以了。现在,我只需要将字段mailed更新为1

我在phpMyAdmin中尝试了SQL查询:

UPDATE klanten_potentioneel SET mailed = 1 WHERE naamklant = '$naam'

$naam显然已更改为现有名称的地方。该查询有效。

<?php 
$conn = new mysqli("localhost", "xxx", "xxx", "xxx");
$sql = "SELECT * FROM table WHERE mailed IS NULL GROUP BY naamklant ORDER BY id DESC ;";
                            $result = $conn->query($sql);

                            if ($result->num_rows > 0) {
                                while ($row = $result->fetch_assoc()) {


if (strtotime($row["datumlastvisit"]) < strtotime('-14 days')) {
    $mailNeeded = '1 ';
    //hier de code van mailen
                                        $to = 'fictional@mail.com';
                                        $subject = 'geen actie potentieel';
                                        $message = "Er is nog geen actie ondernomen bij $row[naamklant] sinds $row[datumlastvisit] door $row[naam]."; 
                                        $headers = 'From: noreply@mail.nl\r\n';
                                        // Sending email
                                        if(mail($to, $subject, $message,$headers)){

                                        }
                $naam = $row["naamklant"];


$sql = "UPDATE klanten_potentioneel SET mailed = 1 WHERE naamklant = '$naam'";



  }                                  
else if (strtotime($row["datumlastvisit"]) < strtotime('-7 days')) {
    $mailNeeded = '0';
} else {
    $mailNeeded = '0';
}
//to test if the code is working
echo $row["naamklant"];
echo " - ";
echo $mailNeeded;
echo "<br>";


                        }
                     }
                      else {
                                echo "There is nothing to be mailed.";
                            }
?>

数据库中的记录应该正在更改,但不会更改。

1 个答案:

答案 0 :(得分:-2)

完成查询构建后,您可以执行它并获取结果。 在这种情况下,您不会在UPDATE查询之后执行此操作。

添加

$conn->query($sql);

之后

$sql = "UPDATE klanten_potentioneel SET mailed = 1 WHERE naamklant = '$naam'";