PHP+MySQL がデータベースの追加、削除、変更、クエリ操作を実装する方法

WBOY
リリース: 2023-05-27 20:02:39
転載
1612 人が閲覧しました

1. 環境構成

開始する前に、PHP と MySQL の開発環境が構成されていることを確認する必要があります。そうでない場合は、自分でインストールして構成してください。私たちはローカル環境で開発しており、コード テスト用に Web サーバー、PHP、および MySQL がすでに構成されていることを前提としています。

2. データベースの作成

まず、データベースを作成する必要があります。 MySQL クライアントを使用してサーバーにログインし、コンソールで次のコマンドを実行してください:

CREATE DATABASE test;
ログイン後にコピー

これにより、「test」という名前のデータベースが作成されます。次に、このデータベースに切り替える必要があります:

USE test;
ログイン後にコピー

次に、ユーザーの情報を含む「users」という名前のデータ テーブルを作成します。

CREATE TABLE users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
ログイン後にコピー

これにより、ID、名前、電子メール、パスワードの 4 つのフィールドを含む「users」という名前のデータ テーブルが作成されます。 id は、ユーザーの一意の識別子として使用される自動増加する整数です。名前フィールドと電子メール フィールドには、それぞれユーザーの名前と電子メール アドレスが保存されます。パスワード フィールドには、ハッシュ化して保存する必要があるユーザーのパスワードが保存されます。 created_at フィールドは、ユーザー アカウントの作成時刻を保存するために使用されます。

3. データベース接続の設定

PHP の mysqli 拡張機能を使用してデータベース接続を制御します。まず、データベース接続の構成値を保存するためにいくつかの定数を定義する必要があります。この例では、ユーザー root を使用し、パスワードは空にしてローカル MySQL サーバーに接続し、データベース test

define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'test');
ログイン後にコピー

にアクセスします。次に、mysqli_connect() 関数を使用してデータベース サーバーに接続します。

$mysqli = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
ログイン後にコピー

接続に失敗した場合は、エラー メッセージが返されます。成功すると、作成、読み取り、更新、削除の 4 つの基本的なデータベース操作を実行できるようになります。

4. 追加、削除、変更、およびクエリ操作の実装

  1. データベースへの追加

次の関数が使用されます。 ユーザー情報をデータ テーブルに追加します。

function create_user($name, $email, $password) {
global $mysqli;

$hashed_password = password_hash($password, PASSWORD_DEFAULT);

$stmt = $mysqli->prepare("INSERT INTO users (name, email, password) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $name, $email, $hashed_password);
$stmt->execute();

return $mysqli->insert_id;
}
ログイン後にコピー

この関数には、ユーザー名、電子メール アドレス、パスワードの 3 つのパラメーターが必要です。まず、password_hash() 関数を使用してパスワードをハッシュします。次に、prepare() 関数を使用して、ユーザー名、電子メール アドレス、ハッシュされたパスワードをデータ テーブルに追加する SQL クエリを準備します。 bind_param() 関数を使用すると、クエリ パラメータをプレースホルダにバインドし、クエリ操作を実行できます。最後に、insert_id() 関数を使用して、新しいユーザーの一意の識別子を取得します。

  1. データベースからデータを取得する

次の関数は、ユーザーの ID を通じてデータベース内のユーザー情報を取得します:

function get_user($id) {
global $mysqli;

$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();

$result = $stmt->get_result();

if ($result->num_rows === 0) {
    return null;
}

return $result->fetch_assoc();
}
ログイン後にコピー

この関数には、ユーザーの一意の識別子という 1 つのパラメーターが必要です。この操作では、SQL クエリを準備し、prepare() 関数を使用して、データ テーブル内の指定された ID に一致するユーザー情報を選択します。 bind_param() 関数は、パラメータをクエリ プレースホルダにバインドし、クエリを実行します。次に、get_result() 関数を使用してクエリ結果を取得し、連想配列 (レコードが見つかった場合) または null (レコードが見つからなかった場合) を返します。

  1. データベースの更新

次の関数は、データベース内のユーザー情報を更新するために使用されます:

function update_user($id, $name, $email, $password) {
global $mysqli;

$hashed_password = password_hash($password, PASSWORD_DEFAULT);

$stmt = $mysqli->prepare("UPDATE users SET name = ?, email = ?, password = ? WHERE id = ?");
$stmt->bind_param("sssi", $name, $email, $hashed_password, $id);
$stmt->execute();

return $stmt->affected_rows === 1;
}
ログイン後にコピー

この関数には 4 つの関数が必要です。パラメータ: ユーザー ID、ユーザー名、電子メール アドレス、パスワード。まず、password_hash() 関数を使用してパスワードをハッシュします。次に、prepare() メソッドを使用して、指定された ID に一致するユーザー情報を更新する SQL クエリを準備します。 bind_param() 関数は、パラメータをクエリ プレースホルダにバインドし、クエリを実行します。最後に、affected_rows() 関数を使用して、更新操作が成功したかどうかを確認し、ブール値を返します。

  1. データベースからのデータの削除

次の関数は、データベースからユーザー情報を削除するために使用されます:

function delete_user($id) {
global $mysqli;

$stmt = $mysqli->prepare("DELETE FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();

return $stmt->affected_rows === 1;
}
ログイン後にコピー

Thisこの関数には 1 つのパラメータ (ユーザー ID) が必要です。このコードは、prepare() 関数を呼び出して、指定された ID に一致するユーザー情報をデータ テーブルから削除する SQL クエリを準備します。 bind_param() 関数は、パラメータをクエリ プレースホルダにバインドし、クエリを実行します。最後に、affected_rows() 関数を使用して、削除が成功したかどうかを確認し、ブール値を返します。

5. デバッグと最適化

あらゆる Web 開発プロセスにおいて、デバッグと最適化は非常に重要です。 error_reporting() 関数と ini_set() 関数を使用してコードをデバッグできます。これらの関数は、エラー報告レベルとエラー メッセージの表示設定を設定するために使用されます。コードを最適化するには、データベース クエリで文字列の連結をできる限り避け、代わりに prepare() 関数と binding_param() 関数を使用する必要があります。

以上がPHP+MySQL がデータベースの追加、削除、変更、クエリ操作を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート