loadEnv(__DIR__.'/../../.env'); $db_info = $_ENV['DATABASE_URL']; // sample format of db_info: mysql://db_user:db_password@127.0.0.1:3306/resq?charset=utf8 // dsn for PDO needs to be: mysql:host=127.0.0.1:3306;dbname=resq;charset=UTF8 preg_match('/^mysql:\/\/(.*):(.*)@(.*):(.*)\/(.*)\?(.*)/', $db_info, $result); $db_type = 'mysql:host='; $user = $result[1]; $pass = $result[2]; $ip_port = $result[3] . ':' . $result[4] . ';'; $db_name = 'dbname=' . $result[5] . ';'; $charset = $result[6]; $dsn = $db_type . $ip_port . $db_name . $charset; $db_data = array($dsn, $user, $pass); return $db_data; } // load csv $csv = fopen($argv[1], 'r'); $output_file = $argv[2]; $output_fh = fopen($output_file, "w"); if (!file_exists($argv[1])) { $err_message = "No csv input file found." . "\n"; fwrite($output_fh, $err_message); fclose($output_fh); exit(); } list($dsn, $user, $pass) = getDatabaseInfo(); // error_log($dsn); // error_log($user); // error_log($pass); // connect to db $db = new PDO($dsn, $user, $pass); // prepared statement $sth = $db->prepare('insert into dealer (name, address, branch_code) values (:name, :address, :branch_code)'); $rownum = 0; while (($row = fgetcsv($csv)) !== false) { // dealer csv file has a header if ($rownum < 1) { // skip header $rownum++; continue; } // sample of line in csv file // columns are name, address, branch code // BATPARTS Marcos Branch,"Km. 16 Marcos Hi-way corner Mahogany Street, Santolan, Pasig",ZN03576282 $dealer_name = trim(strtoupper($row[0])); $dealer_address = trim(strtoupper($row[1])); $dealer_branch_code = trim(strtoupper($row[2])); // error_log('name ' . $dealer_name . ' address ' . $dealer_address . ' branch code ' . $dealer_branch_code); error_log('Processing ' . $dealer_name); $res = $sth->execute([ ':name' => $dealer_name, ':address' => $dealer_address, ':branch_code' => $dealer_branch_code, ]); if (!$res) { // log error $err = $sth->errorInfo(); $log_message = "$dealer_name - ERROR - " . $err[2] . "\n"; } else { // log successful adding of dealer $log_message = "$dealer_name - SUCCESS - " . "\n"; } fwrite($output_fh, $log_message); $rownum++; } // close file fclose($csv); fclose($output_fh); ?>