3

私はPHPが得意ではないので、助けていただければ幸いです。

ある mysql テーブルから同じサーバーの別の mysql テーブルに特定のデータを更新または挿入する必要があります。

購入したテーブルには同じ列があり、私が望むのは、事前に選択されたミッドで特定の行を更新することです! テーブル:

|ID| |mid| |value1| |value2|

更新または挿入のphpが存在するかどうかを確認する部分を行いましたが、必要なのは、指定されたそれぞれのステップposを繰り返すことです

したがって、実行する必要があるリストごとにこのスクリプトを繰り返すために必要なこと

mid1 = 66
mid2 = 78
mid3 = 24


$con = mysql_connect("localhost","User","Pass");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db(baza, $con);

$result = mysql_query("SELECT * FROM table WHERE mid='???' ");

while($row = mysql_fetch_array($result))
{
$mid=$row['mid'];
$name=$row['value1'];
$alias=$row['value2'];
}

mysql_close($con);
?> 
<?php
$con2 = mysql_connect("localhost","user2","pass2");
if (!$con2)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db(baza2, $con2);


$query = "SELECT * FROM table WHERE mid='$mid' ";
$resulta = mysql_query($query) or die(mysql_error());

if (mysql_num_rows($resulta) )
{

mysql_query("UPDATE table SET mid='$mid', name='$name', alias='$alias'");
mysql_close($con2);
echo "1 record added1";
}
else
{
$sql="INSERT INTO table (mid, name, alias)
VALUES
('$mid','$name','$alias')";

if (!mysql_query($sql,$con2))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con2);
}

前もって感謝します!

4

1 に答える 1

1

2 つのデータベースが同じサーバー上にある場合は、両方のデータベースにアクセスできるようにアカウントを設定できます。その場合、次の方法でクエリでデータベースを簡単に選択できます。

mysql_query("SELECT * FROM my_database.my_table WHERE ..");

あなたのコードは..

$mid_array = array(66, 78, 24);
$con = mysql_connect("localhost","user","pass");
if(!$con) {
    die('could not connect: '.mysql_error());
}
mysql_select_db(baza, $con);

foreach($mid_array AS $mid) {
    $result = mysql_query("SELECT * FROM table WHERE mid = '".$mid."'";
    while($row = mysql_fetch_array($result)) {
       mysql_query("INSERT INTO baza2.table (mid, name, alias) VALUES ('".$row['mid']."', '".$row['name']."', '".$row['alias']."') ON DUPLICATE KEY UPDATE name = '".$row['name']."', alias = '".$row['alias']."'");
    }
}
mysql_close($con);

mid = .. のレコードが既に存在するかどうかを確認するために、別のクエリは必要ありません。これは mysql ON DUPLICATE KEY UPDATE ステートメントで簡単に処理できます。

于 2012-12-19T12:11:40.237 に答える