3

我如何使用 php 和 mysqli 进行查询,以删除整个表,然后添加新表我有一个接收数据的表单,但在添加新数据之前,我想从表中删除所有数据。
$oConni 是我的连接字符串

 $cSQLt  = "TRUNCATE TABLE approved";
$cSQLi = "INSERT INTO approved (ID_STUDENT, YEAR, APPROVED)
              VALUES (
              '" . $_POST['NSTUDENT'] . "',
                  '" . $_POST['YEAR'] . "',
                      'YES'
                                       )";

$oConni->query($cSQLt);
$oConni->query($cSQLi);
4

3 回答 3

2

您可以通过发出 TRUNCATE 语句从 MySQL 表中删除所有内容:

TRUNCATE TABLE approved;

..通常与

DELETE FROM approved;

..但有一些小的差异,您可以在文档中阅读

在您粘贴的代码中,请使用准备好的语句以避免 sql 注入攻击。切勿在查询中直接使用未经过滤的 POST 数据!

如果您想将此作为触发器,我们需要更多地了解您的数据处理。在 INSERT 之前发出 TRUNCATE 通常会导致表中只有一行可用,这对于实际使用表来说似乎是一个奇怪的用例。

于 2012-12-16T00:49:35.823 回答
1

你可以使用 TRUNCATE TABLE 然后你的下一个查询:

$cSQLt = "TRUNCATE TABLE CALIFICA_APTO";
$cSQLi = "INSERT INTO approved (ID_STUDENT, YEAR, APPROVED)
          VALUES (
          '" . $_POST['NSTUDENT'] . "',
              '" . $_POST['YEAR'] . "',
                  'YES'
                                   )";
$Connect->query($cSQLt);
$Connect->query($cSQLi);
于 2012-12-16T01:18:40.203 回答
0

如果您希望从表中删除所有数据,则应使用TRUNCATE

TRUNCATE TABLE approved

然后你可以做你的SQL语句。

注意:这将删除表中的所有数据,所以要小心!此外,您的数据库用户必须能够截断表。

于 2012-12-16T00:47:32.750 回答