ホームページ  >  記事  >  バックエンド開発  >  PHPで転送を記述する方法

PHPで転送を記述する方法

PHPz
PHPzオリジナル
2023-04-04 09:01:19513ブラウズ

今日の金融分野では、口座間の資金移動が日常生活の中で一般的な操作になっています。 Web 開発では、この種の操作も非常に一般的です。 PHP は、学習曲線が比較的簡単で拡張性が高いため、Web 開発で広く使用されている言語です。 PHPでは口座振替機能を簡単に実装できます。次に、この記事では PHP でのアカウント転送について学習します。

始める前に、概念を明確にする必要があります。資金移動の核心はデータベースの操作にあります。開発にどの言語を使用しても、最終的にはデータベースを操作する必要があります。

まず、データベースに 2 つのテーブルを作成する必要があります。1 つはユーザー テーブル、もう 1 つは転送レコード テーブルです。ユーザー テーブルには、各ユーザーのアカウント残高のほか、電話番号、電子メール アドレスなどのその他の関連情報が記録されます。振込記録テーブルには、振込金額、時刻、振込者、受取人などの利用者間の振込情報を記録します。これら 2 つのテーブルは、MySQL や PostgreSQL などのリレーショナル データベースを使用して作成できます。ここでは MySQL を例に説明します。

CREATE TABLE users (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    phone VARCHAR(20) NOT NULL,
    balance DECIMAL(10,2) NOT NULL
);

CREATE TABLE transfers (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    from_user_id INT(11) NOT NULL,
    to_user_id INT(11) NOT NULL,
    amount DECIMAL(10,2) NOT NULL,
    date DATETIME NOT NULL,
    FOREIGN KEY (from_user_id) REFERENCES users(id),
    FOREIGN KEY (to_user_id) REFERENCES users(id)
);

上記は 2 つのテーブルを作成する SQL ステートメントです。これらのステートメントは手動で実行することも、PHP コードを使用して作成することもできます。

次に、PHP コードでデータベースに接続し、PHP で MySQLi 拡張機能を使用して接続を作成する必要があります。

<?php
$host = &#39;localhost&#39;;
$username = &#39;your_username&#39;;
$password = &#39;your_password&#39;;
$dbname = &#39;your_database&#39;;

$mysqli = new mysqli($host, $username, $password, $dbname);

if ($mysqli->connect_error) {
    die('连接数据库失败: ' . $mysqli->connect_error);
}

echo '连接数据库成功!';
?>

次に、ユーザー間の転送操作を実装する必要があります。まず、送金当事者双方の口座残高が送金条件を満たしているかどうかを確認する必要があります。条件が満たされた場合は、MySQL のトランザクション関数を使用して、データに対してアトミックな操作を実行する必要があります。以下は、MySQLi 拡張機能を使用して送金操作を実装するコードです:

<?php
$mysqli->autocommit(FALSE); // 开始事务

$from_user_id = 1;
$to_user_id = 2;
$amount = 500;

// 查询原账户余额
$result = $mysqli->query("SELECT balance FROM users WHERE id=$from_user_id");
$row = $result->fetch_assoc();
$from_user_balance = $row['balance'];
$result->free();

if ($from_user_balance >= $amount) {
    $result = $mysqli->query("SELECT balance FROM users WHERE id=$to_user_id");
    $row = $result->fetch_assoc();
    $to_user_balance = $row['balance'];
    $result->free();

    $from_user_balance -= $amount;
    $to_user_balance += $amount;

    $mysqli->query("UPDATE users SET balance=$from_user_balance WHERE id=$from_user_id");
    $mysqli->query("UPDATE users SET balance=$to_user_balance WHERE id=$to_user_id");

    $mysqli->query("INSERT INTO transfers (from_user_id, to_user_id, amount, date) VALUES ($from_user_id, $to_user_id, $amount, NOW())");

    if ($mysqli->commit()) {
        echo "转账成功!";
    } else {
        echo "转账失败!";
    }
} else {
    echo "账户余额不足!";
}

$mysqli->close();
?>

上記のコードは、アカウント 1 からアカウント 2 に 500 元を送金する操作を実装します。コードでは、まず MySQL のトランザクション機能を有効にして、データのアトミック性を確保します。次に、口座 1 と口座 2 の口座残高をクエリし、データベース レコードを更新します。最後に、譲渡情報を譲渡記録テーブルに記録しました。

PHP で転送操作を実装する手順を要約すると、次のとおりです。

  1. ユーザー フォームの作成とレコード フォームの転送
  2. データベースへの接続
  3. アカウントの照会 残高が送金条件を満たしているかどうかを確認します
  4. #トランザクションを開いてデータベース操作を実行します
  5. #送金記録を記録します
  6. #トランザクションを送信します
  7. #実際の開発では、プログラムのセキュリティとデータの整合性を確保するために、エラー処理とデータの検証を実行する必要があることに注意してください。
  8. 上記の内容を学習して、PHP で転送操作を実装する方法を習得したと思います。実際の開発では、実際の状況に応じて柔軟に適用し、コードの可読性と保守性を確保するために適切なプログラミング慣行に従う必要があります。

以上がPHPで転送を記述する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。