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

时间:2013-06-15 11:20:39

标签: php mysql sql

我正在使用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中的变量删除到我定义的数组时,它都可以工作。

希望这很清楚。提前谢谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

您可以使用以下一般语法:

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

this fiddle

上演示

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

警告 - 先仔细测试!