我想做一个sql更新循环语句,在php中使用do - while

时间:2010-06-10 08:53:01

标签: php mysql wamp

我想循环更新语句,但它只循环一次。

以下是我正在使用的代码:

do {
    mysql_select_db($database_ll, $ll);
    $query_query= "update table set ex='$71[1]' where field='val'";
    $query = mysql_query($query_query, $ll) or die(mysql_error());
    $row_domain_all = mysql_fetch_assoc($query);
} while ($row_query = mysql_fetch_assoc($query));

由于 让

4 个答案:

答案 0 :(得分:5)

嗯,它只循环一次的原因是UPDATE查询不返回任何可以用mysql_fetch_assoc提取的行。因此mysql_fetch_assoc会返回false,这会渲染表达式($row_query = mysql_fetch_assoc($query)) false,这就是循环中止的原因。

除此之外,遗憾的是,该代码非常恶劣。它可能有助于告诉我们你想做什么,必须有更好的方法。

答案 1 :(得分:0)

问题是您在循环中将值重新分配给$ query。尝试

do {
    mysql_select_db($database_ll, $ll);
    $query_query= "update table set ex='$71[1]' where field='val'";
    $query2 = mysql_query($query_query, $ll) or die(mysql_error());
    $row_domain_all = mysql_fetch_assoc($query2);
} while ($row_query = mysql_fetch_assoc($query));

答案 2 :(得分:0)

可能是你的mysql查询有问题。

$ query_query =“update table set ex ='$ 71 [1]'where field ='val'”;

您的查询错误。

更新查询是“更新”表名“set ex ='$ 71 [1]'where field ='val'”;

你错过了桌名。

或者如果您使用'table'作为表名。然后改变它。

答案 3 :(得分:0)

人,

我需要替换这个

$query = mysql_query($query_query, $ll) or die(mysql_error());
$row_domain_all = mysql_fetch_assoc($query);

$Result1 = mysql_query($query_query, $ll) or die(mysql_error());