I am using global variable in my function and after research I found that is a bad practice in PHP instead of that I should use dependency injection but I have problem when changing global to dependency injection. What problem about my code? Thanks for help.
update.php (global)
<?php
include 'db_data.php';
class robot{
public function robotUpdate($conn3){
       public function robotUpdate($conn3){
        global $nasa;
        global $id;
        $r_update="UPDATE robot_heartbeat SET last_process_id =$id  WHERE nasa_id=$nasa";
        $robot_u=$conn3->query($r_update);
    }
main.php
<?php
include 'db_data.php';
include 'db_sat.php';
$sql = "SELECT * FROM satellite1.show_activity ";
$result=$conn1->query($sql); //get data from db 1
while($row = $result->fetch_assoc()) {
        $sql2 = "INSERT INTO analysis_data.show_activity SET 
                show_activity_id='".$row["id"]."',
                game_show_id='".$row["game_show_id"]."',
                account_id='".$row["account_id"]."',
                account_code='".$row["account_code"]."',
                login_id='".$row["login_id"]."',
              $result=$conn3->prepare($sql2); //copy data from db1 into db2 
              $result->execute(); 
}
    $robot_u = new robot();
    $nasa = '2';
    $id = $row["id"];
    $robot_u->robotUpdate($conn3); 
I tried: update.php (Dependency injection)
<?php
include 'db_data.php';
class robot{
 public function robotUpdate($conn3,$nasa,$id){
       public function robotUpdate($conn3){
        $r_update="UPDATE robot_heartbeat SET last_process_id =$id  WHERE nasa_id=$nasa";
        $robot_u=$conn3->query($r_update);
    }
**main.php**(dependency injection)
    $robot_u = new robot();
    $robot_u->robotUpdate($conn3,$nasa,$id); //call function first
    $nasa = '2';  //inject value
    $id = $row["id"];
 
    