0

このコードは「Else」に移動し、「フィールド リストの列 'server' があいまいです」と表示されます。

$otoon = mysql_real_escape_string($_POST['otoon']);
$oserver = mysql_real_escape_string($_POST['oserver']);
$server = mysql_real_escape_string($_POST['server']);

$sql="UPDATE regusers_test
INNER JOIN alt_toon_test ON (alt_toon_test.toonname = regusers_test.toonname)
SET server='$server'
WHERE username='$user' AND server='$oserver' AND toonname='$otoon'";

if (!empty($server)) {
  if (mysql_query($sql,$con)) {
    echo "Server updated to: " . $server;
  } else {
        echo "<h1>Error</h1>";
}
mysql_close($con);

$sql をに変更してみました

$gql="UPDATE regusers_test, alt_toon_test SET server='$server' WHERE username='$user' AND server='$oserver' AND toonname='$otoon'";

しかし、私はまだ同じエラーが発生します。ここで壁に頭をぶつけています。エラーの原因はわかっています。同じ名前のフィールドが 2 つあります。これを乗り越える方法がわかりません。

4

1 に答える 1

1

SET 句と WHERE 句でテーブル名を指定する必要があります。つまり、次のようなものです。

$sql="UPDATE regusers_test
INNER JOIN alt_toon_test ON (alt_toon_test.toonname = regusers_test.toonname)
SET regusers_test.server='$server'
WHERE regusers_test.username='$user' AND regusers_test.server='$oserver' AND regusers_test.toonname='$ooon'";

エイリアスを使用した場合、クエリはさらに短くなります。

$sql="UPDATE regusers_test a
INNER JOIN alt_toon_test b ON (b.toonname = a.toonname)
SET a.server='$server'
WHERE a.username='$ユーザー'
  AND a.server='$oserver'
  AND a.toonname='$otoon'";

mysql_query()は推奨されておらず、PHP バージョンの将来の更新で削除される ため、mysqli または PDO 拡張機能への切り替えも検討する必要があります。

于 2013-07-02T21:19:12.790 に答える