触发删除表,然后使用Mysql插入值

时间:2012-12-16 00:44:07

标签: php mysql

我怎么能用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);

3 个答案:

答案 0 :(得分:2)

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

TRUNCATE TABLE approved;

..通常与

相同
DELETE FROM approved;

..但是有一些小差异,you can read about in the documentation

在您粘贴的代码中,请use prepared statements以避免SQL注入攻击。切勿在查询中直接使用未经过滤的POST数据!

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

答案 1 :(得分: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);

答案 2 :(得分:0)

如果您要删除表格中的所有数据,请使用TRUNCATE

TRUNCATE TABLE approved

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

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