ホームページ > データベース > mysql チュートリアル > Smarty テンプレート エンジンを使用して PHP および MySQL 開発を最適化する

Smarty テンプレート エンジンを使用して PHP および MySQL 開発を最適化する

PHPz
リリース: 2023-07-01 10:00:37
オリジナル
1342 人が閲覧しました

PHP 開発スキル: Smarty テンプレート エンジンを使用して MySQL データベースを操作する方法

はじめに:
PHP 開発では、データベースの操作が一般的な要件です。 Smarty テンプレート エンジンを使用すると、バックエンド ロジックをフロントエンド表示から効果的に分離でき、コードの保守性と可読性が向上します。この記事では、Smarty テンプレート エンジンを使用して MySQL データベースを操作し、データの追加、削除、変更、クエリなどの操作を実装する方法を紹介します。

1. 準備
開始する前に、事前に次の条件を準備する必要があります:

  1. PHP 環境のインストールと構成;
  2. インストールと構成優れた Smarty テンプレート エンジン;
  3. MySQL データベースを作成し、テスト データをインポートします。

2. データベースに接続します
始める前に、まずデータベースに接続する必要があります。まず、プロジェクト内に config.php ファイルを作成し、データベース接続の関連構成を保存します。 config.php ファイルでは、データベースのホスト アドレス、ユーザー名、パスワード、データベース名などの情報を保存するための定数を定義できます。

<?php
define('DB_HOST', 'localhost');  // 数据库主机地址
define('DB_USER', 'root');       // 数据库用户名
define('DB_PASS', 'password');   // 数据库密码
define('DB_NAME', 'test');       // 数据库名

// 数据库连接
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);

// 检查连接是否成功
if (!$conn) {
    die("连接失败:" . mysqli_connect_error());
}
ログイン後にコピー

3. データのクエリ
次に、Smarty テンプレート エンジンを使用してデータベース内のデータをクエリし、フロントエンドに表示します。デモンストレーションの便宜上、学生リストのクエリと表示を例として取り上げます。

まず、プロジェクト内に「students.tpl」という名前の Smarty テンプレート ファイルを作成する必要があります。このファイルでは、学生リストを表示するための HTML 構造と Smarty テンプレート構文を定義できます。

次に、PHP コードでは、データベースにクエリを実行して学生リストのデータを取得し、そのデータを Smarty テンプレート エンジンに渡すことができます。

<?php
require_once('config.php');
require_once('smarty/libs/Smarty.class.php');

$smarty = new Smarty();

$query = "SELECT * FROM students";
$result = mysqli_query($conn, $query);

// 将查询结果传递给Smarty模板引擎
$data = [];
while ($row = mysqli_fetch_assoc($result)) {
    $data[] = $row;
}

$smarty->assign('students', $data);
$smarty->display('students.tpl');
ログイン後にコピー

「students.tpl」ファイルでは、Smarty テンプレート構文を使用して学生リストを動的に表示できます。

<!DOCTYPE html>
<html>
<head>
    <title>学生列表</title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>学号</th>
                <th>姓名</th>
                <th>性别</th>
                <th>年龄</th>
            </tr>
        </thead>
        <tbody>
            {foreach $students as $student}
                <tr>
                    <td>{$student.id}</td>
                    <td>{$student.name}</td>
                    <td>{$student.gender}</td>
                    <td>{$student.age}</td>
                </tr>
            {/foreach}
        </tbody>
    </table>
</body>
</html>
ログイン後にコピー

4. データの挿入
データのクエリに加えて、Smarty テンプレート エンジンを使用して新しいデータをデータベースに挿入することもできます。

まず、ユーザーが学生情報を入力し、POST リクエストを通じてサーバーにデータを送信するためのフォームを「add_student.tpl」ファイルに定義する必要があります。

次に、PHP コードで POST リクエストがあるかどうかを判断し、フォーム内のデータを取得してデータベースにデータを挿入します。

<!DOCTYPE html>
<html>
<head>
    <title>添加学生</title>
</head>
<body>
    <form method="post" action="add_student.php">
        <label for="name">姓名:</label>
        <input type="text" name="name" required><br>
        <label for="gender">性别:</label>
        <input type="radio" name="gender" value="1" required>男
        <input type="radio" name="gender" value="0" required>女<br>
        <label for="age">年龄:</label>
        <input type="number" name="age" min="0" required><br>
        <button type="submit">提交</button>
    </form>
</body>
</html>
ログイン後にコピー
<?php
require_once('config.php');
require_once('smarty/libs/Smarty.class.php');

$smarty = new Smarty();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = $_POST['name'];
    $gender = $_POST['gender'];
    $age = $_POST['age'];

    // 插入新的数据到数据库中
    $query = "INSERT INTO students (name, gender, age) VALUES ('$name', '$gender', '$age')";
    $result = mysqli_query($conn, $query);

    // 插入成功后,跳转到学生列表页面
    header('Location: students.php');
    exit;
}

$smarty->display('add_student.tpl');
ログイン後にコピー

概要:
この記事の導入部を通じて、Smarty テンプレート エンジンを使用して MySQL データベースを操作する方法を学びました。 Smarty テンプレート エンジンを使用してデータベース内のデータをクエリし、それをフロントエンドに表示したり、Smarty テンプレート エンジンを通じてユーザーが入力したデータをデータベースに挿入したりできます。バックエンドのロジックとフロントエンドの表示を分離するこの開発方法により、コードの可読性と保守性が向上し、PHP の開発がより便利になります。

以上がSmarty テンプレート エンジンを使用して PHP および MySQL 開発を最適化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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