PHP 開発の基本チュートリアル: ユーザーのバッチおよび特定の削除

データベース接続機能のカプセル化

実際のプロジェクトでは、設定ファイルにホスト、ユーザー名、パスワード、ライブラリを記述します。
コード内にハード的に記述されている場合、データベースサーバーの関連情報が変更された場合、すべてのコードを変更するというプログラマの考え方と明らかに一致しません。

さらに、データベースに接続する必要があるすべてのページで。接続を書いたり、エラーを判定したり、文字セットを設定したりする必要があり、とても面倒です。また、これらのコードを再利用することは有益ではありません。

目標を達成するには、前述した一連の関数を使用できます。サンプル画像は次のとおりです:

118.png

したがって、構成ファイル config.php を作成できます。定数として使用する必要があるすべての構成を設定します。コードは次のとおりです。

<?php
//数据库服务器
define('DB_HOST', 'localhost');

//数据库用户名
define('DB_USER', 'root');

//数据库密码
define('DB_PWD', 'secret');

//库名
define('DB_NAME', 'book');

//字符集
define('DB_CHARSET', 'utf8');

今後データベースに接続する必要がある場合のみ、connection.php ページを抽出します。 connection.php ファイルを含める必要があります。コードは以下の通りです:

<?php

include 'config.php';

$conn = mysqli_connect(DB_HOST, DB_USER, DB_PWD, DB_NAME);

if (mysqli_errno($conn)) {
    mysqli_error($conn);
    exit;
}

mysqli_set_charset($conn, DB_CHARSET);

今後は各ファイルにconnection.phpファイルを直接インクルードすることでデータベース接続を実現できます:

include 'connection.php';

上記の準備を完了し、データの削除を完了します


バッチ処理と指定 ユーザー

を削除する前に、単一行のデータを削除するか、複数行のデータを削除するかを決定する必要があります。

  • たった 1 行で、get にパラメーターを渡して、対応する ID を delete.php ファイルに書き込みます。

  • そして複数の削除では、POST を通じて対応する ID が delete.php ページに渡されます。

  • これら 2 つのどちらも満たされない場合、データは違法であると見なすことができます。

if (is_array($_POST['id'])) {

    $id = join(',', $_POST['id']);

} elseif (is_numeric($_GET['id'])) {

    $id = (int) $_GET['id'];

} else {
    echo '数据不合法';
    exit;
}


SQL文の結合

以前、MySQL の章で、削除時に in サブステートメントを使用できることを説明しました。

ここでも同様に、in サブステートメントを使用して効果を実現できます。

join 関数は、複数選択削除によって渡された ID を 3、4、5 の形式に変更します。複数選択削除の最後の SQL ステートメントには次のような効果があります:

delete from user where id in(3,4,5,6,8);

そして単一選択削除の効果ステートメントは次のようになります:

delete from user where id in(3)

このようにして、単一選択および複数選択の適応効果を実現します。

$sql = "delete from user where id in($id)";

最終的な完全なコードのデモは次のとおりです:

<?php

include 'connection.php';

if (is_array($_POST['id'])) {

    $id = join(',', $_POST['id']);

} elseif (is_numeric($_GET['id'])) {

    $id = (int) $_GET['id'];

} else {
    echo '数据不合法';
    exit;
}

$sql = "delete from user where id in($id)";

$result = mysqli_query($conn, $sql);

if ($result) {
    echo '删除成功';
} else {
    echo '删除失败';
}


学び続ける
||
<?php include 'connection.php'; if (is_array($_POST['id'])) { $id = join(',', $_POST['id']); } elseif (is_numeric($_GET['id'])) { $id = (int) $_GET['id']; } else { echo '数据不合法'; exit; } $sql = "delete from user where id in($id)"; $result = mysqli_query($conn, $sql); if ($result) { echo '删除成功'; } else { echo '删除失败'; }
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜