Php SQL多个更新语句
我需要更新数据库中的40行,从Php SQL多个更新语句,php,sql,Php,Sql,我需要更新数据库中的40行,从userID匹配的点开始。我不想确定行数,因为最终这个数据库将是巨大的 我只想说: “使用我的数组(其中userID=myUserID)更新接下来的40行” 以下是我所拥有的: <?php // connect to the database and select the correct database $con2 = mysql_connect("localhost","Database","Password"); if (!$con2) { die
userID
匹配的点开始。我不想确定行数,因为最终这个数据库将是巨大的
我只想说:
“使用我的数组(其中userID=myUserID)更新接下来的40行”
以下是我所拥有的:
<?php
// connect to the database and select the correct database
$con2 = mysql_connect("localhost","Database","Password");
if (!$con2)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("ifaves_code", $con2);
$i = 0;
while ($i < 40) {
//cycle through the array
$cycleThrough2 = $updatedUserNames[$i];
//$query = "UPDATE tblUserLinks SET `URLName` = '$cycleThrough2' WHERE userID = '" . $mainUID . "' LIMIT 1";
mysql_query($query) or die ("Error in query: $query");
++$i;
}
mysql_close();
?>
我不认为这是因为您的查询构建语句被注释掉了
//$query = "UPDATE tblUserLinks SET `URLName` = '$cycleThrough2' WHERE userID = '" . $mainUID . "' LIMIT 1";
如果这只是调试的结果,而在此之前它不起作用,则必须在mysql\u query()
之后立即调用mysql\u error()
,以查看失败的原因
$result = mysql_query($query);
if (!$result) echo mysql_error();
另外,您在结尾使用了limit1
,但是WHERE子句中的userID
从未更改。因此,在每个循环中,您要反复更新同一行40多次。您需要的是在WHERE子句中找到一种方法来标识已修改的行,并将其排除。否则,同一行(第一次匹配)将始终被LIMIT 1
捕获并更新。来自测试的OOPS即使未注释也不起作用。很抱歉,哈哈。@Mike看到上面关于更新同一行的附加内容了吗?谢谢你,Michael,我希望它能在找到第一个用户ID的行中循环。我会得到行号,然后循环浏览。谢谢您的帮助。@mMike:您的意思是希望这一行的用户ID为“$mainUID”
,而下一行的用户ID为39(大于“$mainUID
”)?当您说“下一行40”是什么意思?下一步是什么?