PHP 開発の基本チュートリアル: ユーザーのバッチおよび特定の削除
データベース接続機能のカプセル化
実際のプロジェクトでは、設(shè)定ファイルにホスト、ユーザー名、パスワード、ライブラリを記述します。
コード內(nèi)にハード的に記述されている場合、データベースサーバーの関連情報が変更された場合、すべてのコードを変更するというプログラマの考え方と明らかに一致しません。
さらに、データベースに接続する必要があるすべてのページで。接続を書いたり、エラーを判定したり、文字セットを設(shè)定したりする必要があり、とても面倒です。また、これらのコードを再利用することは有益ではありません。
目標(biāo)を達(dá)成するには、前述した一連の関數(shù)を使用できます。サンプル畫像は次のとおりです:
したがって、構(gòu)成ファイル config.php を作成できます。定數(shù)として使用する必要があるすべての構(gòu)成を設(shè)定します。コードは次のとおりです。
<?php //數(shù)據(jù)庫服務(wù)器 define('DB_HOST', 'localhost'); //數(shù)據(jù)庫用戶名 define('DB_USER', 'root'); //數(shù)據(jù)庫密碼 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ファイルを直接インクルードすることでデータベース接続を?qū)g現(xiàn)できます:
include 'connection.php';
上記の準(zhǔn)備を完了し、データの削除を完了します
バッチ処理と指定 ユーザー
を削除する前に、単一行のデータを削除するか、複數(shù)行のデータを削除するかを決定する必要があります。
たった 1 行で、get にパラメーターを渡して、対応する ID を delete.php ファイルに書き込みます。
そして複數(shù)の削除では、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 '數(shù)據(jù)不合法'; exit; }
SQL文の結(jié)合
以前、MySQL の章で、削除時に in サブステートメントを使用できることを説明しました。
ここでも同様に、in サブステートメントを使用して効果を?qū)g現(xiàn)できます。
join 関數(shù)は、複數(shù)選択削除によって渡された ID を 3、4、5 の形式に変更します。複數(shù)選択削除の最後の SQL ステートメントには次のような効果があります:
delete from user where id in(3,4,5,6,8);
そして単一選択削除の効果ステートメントは次のようになります:
delete from user where id in(3)
このようにして、単一選択および複數(shù)選択の適応効果を?qū)g現(xiàn)します。
$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 '數(shù)據(jù)不合法'; exit; } $sql = "delete from user where id in($id)"; $result = mysqli_query($conn, $sql); if ($result) { echo '刪除成功'; } else { echo '刪除失敗'; }