ホームページ >データベース >mysql チュートリアル >PHPでmysqlデータベースからデータを削除する方法

PHPでmysqlデータベースからデータを削除する方法

王林
王林転載
2023-06-02 23:45:031247ブラウズ

  1. #削除する前にデータベースをバックアップする

削除する前に、データベースをバックアップすることをお勧めします。データベース。 PostgreSQL および MySQL データベースを操作するための一般的な戦略。次のように書き換えることができます: 一般的な PostgreSQL および MySQL データベース処理戦略。バックアップは、誤ってデータを削除した場合にデータを復元するのに役立ちます。 phpMyAdmin またはコマンド ライン ツールを使用してバックアップを完了できます。コマンドラインで mysqldump コマンドを使用して、データベースをバックアップします。

  1. #DELETE ステートメントを使用します。

DELETE ステートメントを使用して、テーブル内のデータを削除します。 DELETE ステートメントを使用すると、特定の行を削除したり、ワイルドカードを使用して行をバッチで削除したりできます。

<?php
//连接到数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

//创建连接对象
$conn = new mysqli($servername, $username, $password, $dbname);

//检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

//编写删除数据的SQL语句
$sql = "DELETE FROM myTable WHERE id=1";

//执行SQL语句
if ($conn->query($sql) === TRUE) {
    echo "数据删除成功";
} else {
    echo "删除失败: " . $conn->error;
}

//关闭连接
$conn->close();
?>

上記のコードでは、DELETE ステートメントを使用して、

myTable テーブルから ID 1 の行を削除します。行が正常に削除された場合、プログラムは「データ削除成功」を出力し、行が削除されなかった場合、プログラムは「削除失敗」を出力し、MySQL からエラー メッセージが返されます。

  1. SQL インジェクション攻撃の防止

SQL インジェクション攻撃は、アプリケーションがデータにアクセスする原因となるネットワーク攻撃の一種です。漏れ。 SQL インジェクション攻撃を回避するには、PHP の mysql_real_escape_string() 関数を使用して、ユーザーが入力したデータをエスケープします。

<?php
//连接到数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

//创建连接对象
$conn = new mysqli($servername, $username, $password, $dbname);

//检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

//获取用户输入的数据
$id = $_POST[&#39;id&#39;];

//使用mysql_real_escape_string()函数转义用户输入的数据
$id = mysql_real_escape_string($id);

//编写删除数据的SQL语句
$sql = "DELETE FROM myTable WHERE id=&#39;$id&#39;";

//执行SQL语句
if ($conn->query($sql) === TRUE) {
    echo "数据删除成功";
} else {
    echo "删除失败: " . $conn->error;
}

//关闭连接
$conn->close();
?>

上記のコードでは、mysql_real_escape_string() 関数を使用してユーザー入力データをエスケープし、SQL インジェクション攻撃を防ぎます。

  1. #トランザクション管理を使用して操作を削除する

  2. 複数のテーブルのデータを削除する必要がある場合、トランザクション管理は非常に便利です。重要。 PHP では、MySQLi または PDO 拡張機能を使用してトランザクションベースの削除を実現できます。
<?php
//连接到数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

//创建连接对象
$conn = new mysqli($servername, $username, $password, $dbname);

//检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

//开启事务
$conn->begin_transaction();

//编写删除数据的SQL语句
$sql1 = "DELETE FROM myTable WHERE id=1;";
$sql2 = "DELETE FROM myTable1 WHERE id=2;";

//删除数据
if ($conn->query($sql1) === TRUE && $conn->query($sql2) === TRUE) {
    //提交事务
    $conn->commit();
    echo "所有数据删除成功";
} else {
    echo "删除失败: " . $conn->error;
    //回滚事务,撤销删除操作
    $conn->rollback();
}

//关闭连接
$conn->close();
?>

上記のコードでは、begin_transaction() 関数を使用してトランザクションを開始し、最後に commit() 関数を使用して結果を送信します。エラーが発生した場合は、rollback() 関数を使用して、以前の削除操作を元に戻すことができます。

以上がPHPでmysqlデータベースからデータを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。