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 を発行すると、通常、テーブルで使用できる行が 1 つだけになります。これは、実際にテーブルを使用する場合の奇妙な使用例のように思えます。

于 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 に答える