Я подключаюсь к базе данных облака через ODBC-соединение:
$conn = odbc_connect('MYDATABASE','',''); if (!$conn) { exit("Connection Failed: " . $conn); } $sql = "SELECT DATETIME_ID, NAME, Sum(CNDROP) AS DATA FROM MY_TABLE WHERE DATETIME_ID>='2014-09-28:00:00:00' and DATETIME_ID<='2014-09-28 23:00:00' and NAME IN ('CC2') GROUP BY DATETIME_ID, NAME ORDER BY DATETIME_ID, NAME"; $rs = odbc_exec($conn,$sql); if (!$rs) { exit("Consulta fallida"); } $result = odbc_exec($conn,$sql) or die(exit("Error en odbc_exec")); print odbc_result_all($result,"border=1"); odbc_close($conn);
Я могу получить данные и распечатать данные, но теперь мне нужно вставить эти данные в базу данных MySQL на свой компьютер.
Я не знаю, как это сделать, поэтому мне нужна помощь с примером. Я попытался выполнить поиск в google, но ничего не помогло.
Функция SELECT
function get_data_from_cloud(){ $conn=odbc_connect('CLOUD','',''); if (!$conn) { exit("Connection Failed: " . $conn); } $sql="SELECT DATETIME, NAME, CNDROP FROM TABLE1 WHERE DATETIME>='2014-09-28 00:00:00' and DATETIME<='2014-09-28 23:00:00' and NAME IN ('PETER') GROUP BY DATETIME, NAME ORDER BY DATETIME, NAME"; $result=odbc_exec($conn,$sql)or die(exit("Error en odbc_exec")); $data = array(); while (odbc_fetch_row($result)) { $data[]=array('DATETIME' => odbc_result ($result, "DATETIME"), 'NAME'=> odbc_result ($result, "NAME"), 'CNDROP'=> odbc_result ($result, "CNDROP")); } return $data; }
Функция INSERT
function insert_cloud_data($cloud_data=array()){ $conn=odbc_connect('LOCAL','',''); if (!$conn) { exit("Connection Failed: " . $conn); } foreach($cloud_data as $data){ $sql = sprintf("INSERT INTO Prueba (DATIME, NAME, CNDROP) VALUES ( '%s','%s','%s')", $data['DATETIME'], $data['NAME'], $data['CNDROP']); $rs = odbc_exec($conn,$sql); if (!$rs) { error_log("Consulta fallida"); } } odbc_close($conn); }
Функция SELECT
function get_data_from_cloud(){ $conn=odbc_connect('CLOUD','',''); if (!$conn) { exit("Connection Failed: " . $conn); } $sql="SELECT DATETIME, NAME, CNDROP FROM TABLE1 WHERE DATETIME>='2014-09-28 00:00:00' and DATETIME<='2014-09-28 23:00:00' and NAME IN ('PETER') GROUP BY DATETIME, NAME ORDER BY DATETIME, NAME"; $result=odbc_exec($conn,$sql)or die(exit("Error en odbc_exec")); $data = array(); while (odbc_fetch_row($result)) { $data[]=array(odbc_result ($result, "DATETIME"), odbc_result ($result, "NAME"), odbc_result ($result, "CNDROP")); } return $data; }
Функция INSERT
function insert_cloud_data($cloud_data=array()){ $conn=odbc_connect('LOCAL','',''); if (!$conn) { exit("Connection Failed: " . $conn); } $sql = "INSERT INTO Prueba (DATIME, NAME, CNDROP) VALUES (?, ?, ?)"; $stmt = odbc_prepare($conn, $sql); if(!$stmt) die("could not prepare statement ".$sql); foreach($cloud_data as $data){ odbc_execute($stmt, $data); } odbc_close($conn); }
ПРИМЕНЕНИЕ
$cloud_data = get_data_from_cloud(); insert_cloud_data($cloud_data);
Вот другой подход.
Создайте $ conn1 (облако) и $ conn2 (localhost). Запросите $ conn1, затем используйте php while и вставьте команду в $ conn2.
$conn1 = (cloud); $conn2 = (localhost); $query = "SELECT ..."; $result = odbc_exec($conn1,$query); while( fetch result data ) { $query = "INSERT ...."; odbc_exec($conn2,$query); }