单击清除按钮后使用多查询功能修改表
Posted
技术标签:
【中文标题】单击清除按钮后使用多查询功能修改表【英文标题】:Using the multi query function to modify table after clear button is clicked 【发布时间】:2016-04-23 21:28:37 【问题描述】:$DBConnect = @mysqli_connect("localhost", "username", "password")
$query = "从计数器中删除";
$query = "ALTER TABLE hitcounter AUTO_INCREMENT=0";
if (isset($_POST['clear']))
(mysqli_multi_query($DBConnect,$query))
// 我做了一个点击计数器,在页面上显示点击数
// 我只剩下重置按钮,在按下清除按钮后将页面点击数设为 0
// 我无法执行查询
【问题讨论】:
忽略您在查询变量声明中犯的错误,我建议您使用TRUNCATE TABLE hitcounter
。
【参考方案1】:
你可以使用:
$query = "TRUNCATE TABLE hitcounter;"
这将删除所有行并将 auto_increment 重置为 0 以及仅在一个查询中。
编辑:
这不适用于 InnoDB 表,只要它们有关系
【讨论】:
这应该是公认的答案。它比执行两个查询要高效得多。【参考方案2】:我不知道您遇到了什么错误,但您需要更改您的 php 代码,如下所示:
$query = "DELETE FROM hitcounter;";
$query .= "ALTER TABLE hitcounter AUTO_INCREMENT=0;";
第一个查询需要终止;第二行应附加到字符串。如所写,它将覆盖。所以唯一执行的语句是 ALTER TABLE。
这将解决您关于多查询的代码问题,但正如其他人所指出的,使用 TRUNCATE TABLE
更适合这项工作
【讨论】:
这可能是因为缺少 ;在(mysqli_multi_query($DBConnect,$query))
的末尾。您也不需要 ( ) 的外部集合,您应该捕获返回值以检查错误。
好的,谢谢我添加了;我没有收到错误,但我认为查询没有被执行。我正在制作一个计数器网页,该网页计算网页上的点击次数并包含一个清除按钮。单击后的清除按钮应将点击的值更改为 0。
您应该遵循其他答案的建议并切换到 TRUNCATE 和单查询。这样更好。以上是关于单击清除按钮后使用多查询功能修改表的主要内容,如果未能解决你的问题,请参考以下文章