-1

良い一日、

次の問題についてサポートが必要です。あるテーブルからデータを取得し、別のテーブルに挿入する必要があります。私が抱えている問題は、次の2点です。

  1. 何らかの障害が発生した場合に備えて、スクリプトは最後のインポートから続行する必要があります
  2. スクリプトは、スクリプトの別のインスタンスがすでに進行中であるかどうかも検出して終了する必要があります

これが私のコードです:

<?php
/*echo "<pre>";
print_r(get_defined_functions());
echo "</pre>";*/

echo "testX";
try {
    $link = mysql_connect('host', 'username', 'password');
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

if (!$link)
  {
  die('Could not connect: ' . mysql_error());
  }
else
{
echo "link worked!";
}
mysql_select_db("aaatrycmpg_db2", $link);
$result = mysql_query("SELECT * FROM  source_cdr");
//print_r($result);
$count = mysql_num_rows($result);
echo "<table border='1'><tr><td>callstart</td><td>src</td><td>dst</td>                  <td>accountcode</td><td>uniqueid</td><td>ID</td><td>callanswer</td><td>callend</td> <td>disposition</td><td>cdr_id</td><td>pin_code</td><td>provider</td></tr>";
 while($row = mysql_fetch_array($result))
  {
echo "<tr><td>".$row['callstart']."</td><td>".$row['src']."</td><td>".$row['dst']."    </td><td>".$row['accountcode']."</td><td>".$row['uniqueid']."</td><td>".$row['ID']."</td><td>".$row['callanswer']."</td><td>".$row['callend']."</td><td>".$row['disposition']."</td><td>".$row['cdr_id']."</td><td>".$row['pin_code']."</td><td>".$row['provider']."</td></tr></table>";
  $callstart = $row['callstart'];
  $callanswer = $row['callanswer'];
  $callend = $row['callend'];
  $datetime=$callstart; 
$date=substr($datetime, 0, 10); 
echo $date."<br>"; 
  $callduration = strtotime($callend) - strtotime($callstart);
  $talkduration = strtotime($callend) - strtotime($callanswer);
  echo strtotime($callend)." - ".strtotime($callstart)." = ".$callduration." = ".$talkduration;
  echo "<br />";
  if ($row['cdr_id'] != '1')
  {
mysql_query("INSERT INTO destination_cdr     (calldate,source,destination,account_code,pincode,duration_call,duration_talk,disposition,clid,cdr_id,provider)
VALUES ('".$callstart."','".$row['src']."','".$row['dst']."','".$row['accountcode']."','".$row['pin_code']."',".$callduration.",".$talkduration.",'".$row['disposition']."','".$row['ID']."','".$row['cdr_id']."','".$row['provider']."')");
  }
  }


?>
4

1 に答える 1

1
  1. クエリ部分を適切にフォーマットしていません。
  2. これには PHP はまったく必要ありません。

作るだけ

INSERT INTO destination_cdr
(calldate,source,destination,account_code,pincode,duration_call,duration_talk,disposition,clid,cdr_id,provider) 
SELECT callstart,src, etc. FROM source_cdr

TO_DAYS() または同様の mysql 関数を使用して、日付を再フォーマットすることもできます

私は、その動く混乱のすべてにあまり役に立ちません。すべてのレコードを source_cdr に保持しないのはなぜですか?

于 2013-02-17T10:13:59.713 に答える