如何在UPDATE语句中使用SELECT中的值?

时间:2014-07-04 20:55:08

标签: php mysql sql

以下是我想要完成的事情。我试图使用SELECT语句检索一个整数值,我会将其传递到UPDATE语句中,但我还没有成功。以下是我到目前为止所做的事情,它不起作用。如有任何建议,将不胜感激。 $empID使用php从表单传递。

$getemID ="SELECT  `addressID` FROM  `address` WHERE  `userID` =$empID";
$myemID = mysql_query($getemID) or die(mysql_error());
$addrID = $myemID["addressID"];

$sql4="UPDATE `address` 
SET `line1`='$line1', `line2`='$line2', `city`='$city', `zip`='$zip'
WHERE `addressID`=$addrID";
$res = mysql_query($sql4) or die(mysql_error());

3 个答案:

答案 0 :(得分:0)

虽然您不应使用已弃用的 mysql_*功能,但以下内容仍然存在:

mysql_query调用的返回值不是数组,而是资源。在mysql_fetch_array之类的调用中使用此资源来获取数据。然后,您可以将该数据用于其他查询。

答案 1 :(得分:0)

选择查询后,您必须使用mysql_fetch_array获取它们。如下所示:

$getemID ="SELECT  `addressID` FROM  `address` WHERE  `userID` =$empID";
$myemID = mysql_query($getemID) or die(mysql_error());
$row = mysql_fetch_array($myemID);
$addrID = $row["addressID"];
$sql4="UPDATE `address` 
SET `line1`='$line1', `line2`='$line2', `city`='$city', `zip`='$zip'
WHERE `addressID`='$addrID' ";
$res = mysql_query($sql4) or die(mysql_error());

答案 2 :(得分:0)

为什么不在下面的单个查询中执行此操作

UPDATE `address` 
SET `line1`='$line1', `line2`='$line2', `city`='$city', `zip`='$zip'
WHERE `addressID` IN (
SELECT  `addressID` FROM  `address` WHERE  `userID` =$empID
)