使用SELECT查询在MySQL上查找UPDATE查询


Using a SELECT Query to look up a UPDATE Query on MySQL

我使用SELECT查询来获取使用mysql_fetch_assoc的变量。然后将该变量放入UPDATE变量中,以便将返回值放回数据库。

如果我硬编码的值,或使用传统的变量,它在刚刚好,但它不工作时使用一个值以前从数据库检索。我试过将数组变量重置为我自己的文本,这是有效的。

$arrgateRetrivalQuery = mysql_query(**Select Query**);
    $arrGate = mysql_fetch_assoc($arrgateRetrivalQuery);
    $arrivalGateTest = $arrGate['gatetype'];
$setGateAirportSQL = "UPDATE pilots SET currentgate = '".$arrivalGateTest."' WHERE pilotid = '".$pilotid."'";
    $setGateAirportQuery = mysql_query($setGateAirportSQL);
    // Close MySQL Connection
    mysql_close($link);

这只会使要更新的字段没有任何内容,但是每当我从SELECT中删除变量到我定义的变量时,无论是否为数组,它都会工作。

希望这足够清楚。

arrivalGateTest是数字还是字符串?您是如何尝试在查询中添加另一个值的?如果您确定前面的查询返回一个值,那么尝试写:$setGateAirportSQL = "UPDATE pilots SET currentgate = '$arrivalGateTest' WHERE pilotid = '$pilotid'";

只需更改sql以包含子查询。

您可以使用以下通用语法:

UPDATE pilots SET currentgate = (SELECT gate FROM airport WHERE flight='NZ1') WHERE pilotid='2';

显示在这个小提琴

这节省了额外的查询,并更准确地描述了您想要实现的目标。

警告-先仔细测试!