#!/usr/bin/env php
<?php
/*
   Demo program to import a VOTable into a MySQL DB table using 'vot2dbt'.


  Usage:
    ./import_vot_demo.php vot=your_votable

  optional parameters:
      [host=db_hostname] def. = localhost
      [usr=db_user]      def. = mpeusr
      [pass=db_password] def. = mpe2018pass 
      [db=db_name]       def. = mpe2018db
      [tab=db_tabname]   def. = root name of your input VOTable
      -v  be verbose

  LN@INAF-OAS Bologna, Last change: 18/09/2019
*/


require('vot2dbt.php');


// Parse input string into _GET array
  parse_str(implode('&', array_slice($argv, 1)), $_GET);

  if (empty($_GET['vot'])) {
    echo '
Usage:
  ./import_vot_demo.php vot=your_votable

  optional parameters:
    [host=db_hostname] def. = localhost
    [usr=db_user]      def. = mpeusr
    [pass=db_password] def. = mpe2018pass 
    [db=db_name]       def. = mpe2018
    [tab=db_tabname]   def. = root name of your input VOTable
    -v  be verbose' ."\n\n";
    exit;
  }

  $xml_file = $_GET['vot'];
  $tab = ! empty($_GET['tab']) ? $_GET['tab'] : rname($xml_file);  // see vot2dbt.php
  $host = ! empty($_GET['host']) ? $_GET['host'] : 'localhost';
  $usr  = ! empty($_GET['usr']) ? $_GET['usr'] : 'mpeusr';
  $pass = ! empty($_GET['pass']) ? $_GET['pass'] : 'mpe2018pass';
  $db   = ! empty($_GET['db']) ? $_GET['db'] : 'mpe2018db';
  $verbose = array_key_exists('-v',$_GET) ? true : false;


// Open connection
  if ($verbose) echo 'Establishing a connection to the database '. $db ."...\n";

  $mysqli = new mysqli( $host, $usr, $pass, $db );

  if ( $mysqli->connect_errno ) {
    echo 'Failed to connect to MySQL: ('. $mysqli->connect_errno .') '. $mysqli->connect_error ."\n";
    echo "$host, $usr, $pass, $db\n";
    exit;
  }

  if ($verbose) echo "Calling vot2dbt...\n";


  $data = vot2dbt( $xml_file, $mysqli, $tab, $verbose );


  $d = json_decode( $data );

  if ( $d['status'] != 0 ) {
	echo "Failed to insert: \n\n";
	echo $d['errmsg'];
	exit;
  }

  echo "all done.\nSee table `$db.$tab`\n\n";
  echo "Read back and print first row as a check:\n\n";
  $s = doqry( $mysqli, 'select * from `'. $tab .'` limit 1' );
  print_r($s);

  $mysqli->close();
?>
