【发布时间】:2015-08-16 12:17:29
【问题描述】:
我尝试在表事件中重置我的 ID,但 query("UPDATE events SET ID=".$i."WHERE ID=".$row['ID'];) 总是失败。知道为什么吗?
//getting the whole table from mysql
$query="SELECT * FROM events";
$results=mysql_query($query);
$size=mysql_num_rows($results);
echo($size);
//drop the primary key
$query="ALTER TABLE events DROP PRIMARY KEY";
if(!(mysql_query($query)))
echo("Query1 failed");
//reset ID
for($i=0;$i<$size;$i++){
$row=mysql_fetch_assoc($results);
$query=" UPDATE events SET ID=".$i."WHERE ID=".$row['ID'];
if(!(mysql_query($query)))
echo("Query failed2");
}
//add primary key back to ID
$query="ALTER TABLE events ADD PRIMARY KEY (ID)";
if(!(mysql_query($query)))
echo("Query failed3");
【问题讨论】:
-
打印$query,以及错误信息
-
您为什么要这样做?如果您曾经将其他表链接到该表,您将失去它们之间的所有关系。
-
UPDATE events SET ID=".$i."WHERE ID=".$row['ID'];可能在WHERE之间放一个空格? -
你仍在使用 PHP 的 deprecated mysql 扩展。强烈建议迁移到 MySQLi 或 PDO。我推荐 PDO,因为它具有更好的 Prepared Statements 集成。
-
@charlotteDunois 我可能会试一试。我正在使用已弃用的 mysql,因为我想练习到目前为止我在 Uni 学到的东西。谢谢你的建议:)