So i'm trying to fetch data from mSQL and insert it to mySQL.
With print_r($impact_data);
i know i get data from mSQL.
But when it's time to INSERT the data to mySQL something happens, or more correct nothing happens at all. I get no error messages.
I have tried to move around echo "here";
to see how long the script works. The script dies after this row: $result = $stmt_2->execute($params_array);
First question is Whats wrong?
Second question is Why doesn't any error shows? (I normaly see all errors, so it's no setting for displaying errors that's missing)
//GET DATA FROM IMPACT SQL
//REMOVE WHITESPACE
$objNr = str_replace(' ', '', $_POST['change_objNr']);
//Prepare Query
$sql = "SELECT a.*, b.floor_id FROM dbo.IMP_ELEMENT a
INNER JOIN dbo.IMP_MODEL_GEOMETRY b ON a.Project = b.Project and a.element_mark = b.element_mark
WHERE CONCAT(b.Project, '-', b.floor_id) LIKE '%$objNr%'";
//CONNECT
$stmt = sqlsrv_query( $conn, $sql );
//ERROR?
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}
//RESULT
$i = 0;
while ($row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ){
$row['id'] = $i+1;
$impact_data[] = $row;//build an array
//INSERT INTO MySQL DB (LKBKOM)
//PARAMS ARRAY
$params_array = array(
':objekt_element' => $objNr."_".$impact_data[$i]['ELEMENT_MARK'],
':objekt_nr' => $objNr,
':lit' => $impact_data[$i]['PRODUCT'],
':element_nr' => $impact_data[$i]['ELEMENT_MARK'],
':hojd' => $impact_data[$i]['ELEMENT_HEIGHT'],
':typ' => $impact_data[$i]['STYLE'],
':langd' => $impact_data[$i]['ELEMENT_LENGTH'],
':vikt' => $impact_data[$i]['MASS'],
':ritare' => $impact_data[$i]['CREATED_BY'],
':bredd' => $impact_data[$i]['ELEMENT_WIDTH'],
':datum' => $impact_data[$i]['CREATED_DATE'],
':andrad_dat' => $impact_data[$i]['CHANGED_DATE']
);
//QUERY
$query = "INSERT INTO element(
objekt_element,
objekt_nr,
lit,
element_nr,
hojd,
typ,
langd,
vikt,
ritare,
bredd,
datum,
andrad_dat)
VALUES (
:objekt_element,
:objekt_nr,
:lit,
:element_nr,
:hojd,
:typ,
:langd,
:vikt,
:ritare,
:bredd,
:datum,
:andrad_dat)
";
//Execute Query
try {
$stmt_2 = $db->prepare($query);
$result = $stmt_2->execute($params_array);
//ECHO RESULT
echo 'Rad '.$objNr.' '.$impact_data[$i]['ELEMENT_MARK'].' Inlagt!<br>';
}
catch(PDOException $ex){
die("Failed to run query element: " . $ex->getMessage());
}
}
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
EDIT, THIS IS HOW I CONNECT TO DBO & SQL Is there a conflict in the connections?
PDO:
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
try { $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options); }
catch(PDOException $ex){ die("Failed to connect to the database: " . $ex->getMessage());}
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
SQL:
//BUILD CONNECTION ARRAY
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>$databaseName);
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);