2013-08-27 1 views
0

У меня есть живой сервер и тестовый сервер прямо сейчас, и мне нужно скопировать таблицу из живого для тестирования с помощью cron, потому что она должна запускаться каждый час. Я создал сценарий php и протестировал его с помощью localhost, и он отлично работает, но когда я тестирую на реальном сервере, он не работает.Скопируйте таблицу с другого сервера с помощью cron

Я подозреваю, что, когда на локальном хосте, хотя он между разными базами данных, но все еще использует одно и то же соединение с сервером. и я использую phpmyadmin.

Edit: Вот код

<?php 
/* fill in your source database name */ 
$database = "xxx"; 
$dbhost1 = "xxx"; 
$dbusr1 = "xxx"; 
$dbpas1 = "xxx"; 
/* fill in your target database name */ 
$database2 = "yyy"; 
$dbhost2 = "yyy"; 
$dbusr2 = "yyy"; 
$dbpas2 = "yyy"; 

if ($connect = mysqli_connect($dbhost1, $dbusr1, $dbpas1)) 
{ 
    mysql_select_db($database, $connect); 
    echo "connected to xxx<br/>"; 
} 
else { die("Source database fail to connect: Please try again" . mysql_error());} 

if ($connect2 = mysqli_connect($dbhost2, $dbusr2, $dbpas2)) 
{ 
    mysql_select_db($database2, $connect2); 
    echo "connected to yyy<br/>"; 
} 
else { die("Target database fail to connect 1: " . mysql_error());} 
set_time_limit(0); 

$tables = array("coupon"); 
$tables_no = count($tables); 

for ($i=0; $i < $tables_no ; $i++){ 
    $tab = $tables[$i]; 
    $query_table1 = "SELECT * FROM $database.$tab"; 
    $query_table2 = "SELECT * FROM $database2.$tab"; 

    $source= mysql_query($query_table1); 
    $destination= mysql_query($query_table2); 

    if ($source <= $destination){ 
    echo 'aaa'; 
     while($row_table1 = mysql_fetch_array($source)){ 
      // var_dump ($row_table1); 
      // if statement 
     } 
    } 
    else {echo 'dalam else';} 
} 
?> 
+1

" не работает "не является объяснением проблемы. – zerkms

+0

, показывающий некоторый скрипт, может помочь, вы можете замаскировать конфиденциальные данные ... –

+0

Извините. Я помещаю скрипт на тестовый сервер, и когда я его запускаю, кажется, что он не может прочитать инструкцию запроса. Я положил скрипт на помощь. Спасибо – Kiki

ответ

0

Ваше второе подключаемое убивает ваш первый один. при использовании mysql_connect, пожалуйста, обратитесь к руководству по переменному пройти, чтобы избежать этого ...

if ($connect = mysql_connect($dbhost1, $dbusr1, $dbpas1)) 
{ 
    mysql_select_db($database, $connect); 
    echo "connected to xxx<br/>"; 
} 
else { die("Source database fail to connect: Please try again" . mysql_error());} 

if ($connect2 = mysql_connect($dbhost2, $dbusr2, $dbpas2, true)) 
{ 
    mysql_select_db($database2, $connect2); 
    echo "connected to yyy<br/>"; 
} 

И для получения результатов из каждой БД, использовать их соответствующий ресурс ...

$result1 = mysql_query($connect1, $sql_query1); 

$result2 = mysql_query($connect2, $sql_query2); 
+0

Я пытаюсь использовать ваш код, но при этом происходит одна и та же ошибка. Кажется, что он перестает читать код при ** while ($ row_table1 = mysql_fetch_array ($ source)) {** line. ** echo 'aaa'; ** строка печатается и останавливается при объявлении после этого – Kiki

+0

Привет, редактируя выше, что еще пошло не так, я думаю, вам нужно указать ресурс для вашего запроса –

+0

Отлично! да, нужно указать ресурс запроса. Благодарим вас за помощь. – Kiki

Смежные вопросы