为什么结果集的迭代变成无限循环?

时间:2013-04-30 13:10:57

标签: php mysql resultset

我有一个代码,到目前为止有效。然而,它进入某种无限的斜率并且不经过所有行(30,000)而不断重复。我当时无法弄清楚如何在每一行中循环一次!

$con = mysql_connect('localhost', '', '');

if (!$con) die('Could not connect: ' . mysql_error());

mysql_select_db("", $con);

$sql="SELECT prodName,merchant FROM `affiliSt_products1`";
$result = mysql_query($sql);

while($row = mysql_fetch_array($result)) {
    $merchant = $row[merchant];
    mysql_query("UPDATE affiliSt_products1 SET prodName = CONCAT(prodName,' By $merchant') WHERE merchant = '$merchant' ") or die(mysql_error());
}

以上是为了使搜索更有效。可以轻松找到仅限商家的产品。

3 个答案:

答案 0 :(得分:1)

这很简单,只需将fetch_array更改为fetch_assoc即可正常使用!

答案 1 :(得分:0)

使用单个UPDATE语句完成整个事情:

UPDATE affiliSt_products1 SET prodName = CONCAT(prodName,' By ', merchant)

答案 2 :(得分:0)

变化 while($row = mysql_fetch_assoc($result))