所以我试图根据单个参数更新我的表:
dateEntered字段必须为空。
我想随机选择50行,并将空白ownerID字段更新为“Tester”
这就是我所拥有的:
<?php
include("includes/constants.php");
include("includes/opendb.php");
$query = "SELECT * FROM contacts WHERE dateEntered='' ORDER BY RAND() LIMIT 50";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_assoc($result)){
$firstid = $row['id'];
$query2 = mysql_query("UPDATE contacts
SET ownerID = 'Tester'
WHERE id = '$firstid'");
$result2 = mysql_query($query2) or die(mysql_error());
}
?>
它将更新单个记录,然后退出并给我:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1
选择记录的第一部分工作正常,它的query2不会更新所有50条记录,只有一条。也许我写错了。
答案 0 :(得分:2)
mysql_query只需要一次
$query2 = mysql_query("UPDATE contacts
SET ownerID = 'Tester'
WHERE id = '$firstid'");
$result2 = mysql_query($query2) or die(mysql_error());
到
$result2 = mysql_query("UPDATE contacts
SET ownerID = 'Tester'
WHERE id = '$firstid'");
答案 1 :(得分:1)
这些答案都是正确的,所以我只会添加一些额外的信息和建议。当你第一次查询mysql时,$ query1被设置为结果资源,对于
$query1 = mysql_query("UPDATE contacts SET ownerID = 'Tester' WHERE id = '$firstid'");
返回1的结果(布尔值为TRUE),这就是你的第二个查询失败的原因,因为“1”不是一个有效的mysql查询字符串。正如Greg P所说,你可以通过消除辅助mysql查询来修复当前脚本。
但是,您可以使用此功能完全改进脚本,并减少sql调用。
<?php
include("includes/constants.php");
include("includes/opendb.php");
$query = "UPDATE contacts SET owenerID='Tester' WHERE dateEntered='' ORDER BY RAND() LIMIT 50";
$result = mysql_query($query) or die(mysql_error());