sql >> データベース >  >> RDS >> Mysql

PHP / MySQL-すでに自動生成されたテーブルの行の削除リンクを自動生成する方法は?

    これを変更する

    <a href='#'><span class='delete'>
    

    <a href='deletepage.php?id=" . $row["ID"] . "'><span class='delete'>
    

    次に、「deletepage.php」で、そのページと呼ぶものは何でも次のようにします

    require_once('dbconnect.php');
    $id = (int)$_GET['id'];
    $sql = "DELETE FROM Predictions WHERE id=" . $id;    
    if($conn->query($sql) === TRUE) {
        echo "Item deleted successfully";
    } else {
        echo "Error deleting record; ". $conn->error;
    }
    $conn->close();
    

    ここで使用しているドライバーはわかりませんが、パラメーター化されたクエリでプリペアドステートメントを使用することをお勧めします。

    ほとんどの場合、idを送信します GET経由 「ページの削除」へのパラメータ。そのページはその値を受け取り、それをintにキャストします SQLインジェクションを回避するため(以下でさらに読む)、データを削除します。成功をエコーする代わりに、headerを使用することもできます。 それらを前のページにリダイレクトします。 GETを追加できます そのURLのパラメータは、成功メッセージを表示します。 (または、これらすべてを常に同じページで実行して、idかどうかを確認することもできます。 送信中です。

    また、このページは誰かの安全なログインシステムの背後にある必要があります。そのdeletepage.phpを実行できるユーザー/ボットは必要ありません。 。

    PHPでSQLインジェクションを防ぐにはどうすればよいですか?
    http://php.net/manual/en /security.database.sql-injection.php
    https://www.owasp.org /index.php/SQL_Injection_Prevention_Cheat_Sheet#Defense_Option_1:_Prepared_Statements_.28Parameterized_Queries.29

    mysqliを使用していると思います したがって、そのドライバを使用したプリペアドステートメントについては、このドキュメントを参照してください。 http ://php.net/manual/en/mysqli.quickstart.prepared-statements.php




    1. 採用または採用:採用プロセスのデータモデル

    2. MySQL COS()関数–MySQLの数値の正弦を返します

    3. 集約とパーティショニング

    4. 日付を人間が読める形式にフォーマットする