代码如下。好像我运行这个文件时,它没有做任何事情。
header('Content-Type: application/json');
$DB = new mysqli("localhost", "root", "root", "friendslist");
if($DB->connect_errno) {
die("Connect failed: ". $DB->connect_error);
}
$DB->query("DELETE * FROM users");
$DB->query("ALTER TABLE users AUTO_INCREMENT = 1");
$DB->close();
echo json_encode(Array('status' => 'ok'));
答案 0 :(得分:4)
您的查询语法不正确。如果您阅读documentation,您会看到DELETE
的有效语法是:
DELETE FROM users
或:
DELETE users.* FROM users
其中.*
在第二个版本中是可选的。但DELETE *
无效。
您也可以使用TRUNCATE tablename
删除表格中的所有内容,并在一个步骤中重置自动增量ID。
您还应该检查查询是否成功:
$DB->query("DELETE * FROM users") or die ($DB->error);
会告诉你有语法错误。然后我确定你会检查文档以查看正确的语法是什么,并立即修复它,而不是将问题发布到SO的慢速路径。
答案 1 :(得分:2)
首先,删除systex是错误的,这会导致代码出错。
其次,你应该使用truncate而不是delete,因为它们以两种不同的方式工作。
TRUNCATE TABLE tablename;
实际上删除并重新创建表格,使其快速并将自动增量种子值重置为1.
然而,DELETE FROM tablename;
删除表中的所有数据。它没有使用“TRUNCATE TABLE”方法那么快,它保留了之前的自动增量种子值。
所以你可以使用以下内容:
if($DB->query("TRUNCATE TABLE users"))
echo json_encode(Array('status' => 'ok'));
else echo json_encode(Array('status' => $DB->error));
您将从响应中得到问题。
答案 2 :(得分:0)
我认为您必须从删除查询
中删除*
header('Content-Type: application/json');
$DB = new mysqli("localhost", "root", "root", "friendslist");
if($DB->connect_errno) {
die("Connect failed: ". $DB->connect_error);
}
$DB->query("DELETE FROM users");// Remove * from here
$DB->query("ALTER TABLE users AUTO_INCREMENT = 1");
$DB->close();
echo json_encode(Array('status' => 'ok'));