Question

Ok so if I run this in the terminal:

/usr/bin/php /var/www/tasks/CreateContacts.php

The PHP script runs fine:

I have added this to crontab -e

*/2 * * * * /usr/bin/php /var/www/tasks/CreateContacts.php > /root/CronTasks/CreateContact_Output.txt

It seems to be running ok because CreateContact_Output.txt has been created yet contains nothing - and my outcome changes (in database) haven’t been done.

This is running on an Ubuntu server.

EDIT: Added contents of PHP file below:

<?php
include '../public_html/_dbconnect.php';
include '../public_html/_functions.php';
$query = "SELECT * FROM CustomerDetails;";
$results = mysqli_query($con, $query);
if(mysqli_num_rows($results) == 0){
        //Do fuck all
}else{
    while($row = mysqli_fetch_array($results)) {
      $HeartID = CreateHeartContact($row['Name']);
      echo 'Sending Customer ID:' . $row['id'] . '<br>';
      $UniqueID = $row['id'];
      $NewQuery = "UPDATE CustomerDetails SET ID = '$HeartID' WHERE ID = '$UniqueID';";
      mysqli_query($con, $NewQuery);
    }
}
?>
Was it helpful?

Solution

I guess you should change to the working directory before running PHP, so that your include statement work :

*/2 * * * * cd /var/www/tasks/ && /usr/bin/php CreateContacts.php > /root/CronTasks/CreateContact_Output.txt

or you could use an absolute path as well in your code :

include realpath(dirname(dirname(__FILE__))).'/../public_html/_dbconnect.php';
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top