0

我正在使用 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 删除到我定义的变量时,无论是否为数组,它都会起作用。

希望这足够清楚。提前致谢。

4

2 回答 2

0

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

于 2013-06-15T11:44:29.927 回答
0

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

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

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

这在这个小提琴上得到了证明

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

警告 - 首先仔细测试!

于 2013-06-15T11:54:02.600 回答