Gunakan enjin templat Smarty untuk mengoptimumkan pembangunan PHP dan MySQL

PHPz
Lepaskan: 2023-07-01 10:00:37
asal
1308 orang telah melayarinya

Kemahiran pembangunan PHP: Cara menggunakan enjin templat Smarty untuk mengendalikan pangkalan data MySQL

Pengenalan:
Dalam pembangunan PHP, pangkalan data pengendalian adalah keperluan biasa. Penggunaan enjin templat Smarty secara berkesan boleh memisahkan logik bahagian belakang daripada paparan bahagian hadapan, meningkatkan kebolehselenggaraan dan kebolehbacaan kod. Artikel ini akan memperkenalkan cara menggunakan enjin templat Smarty untuk mengendalikan pangkalan data MySQL untuk melaksanakan operasi seperti menambah, memadam, mengubah suai dan menanyakan data.

1. Penyediaan
Sebelum kita mula, kita perlu menyediakan syarat berikut terlebih dahulu:

  1. Pasang dan konfigurasikan persekitaran PHP
  2. Pasang dan konfigurasikan enjin templat Smarty
  3. Buat pangkalan data MySQL; .

2 Sambung ke pangkalan data
Sebelum bermula, kita perlu menyambung ke pangkalan data terlebih dahulu. Mula-mula, cipta fail config.php dalam projek untuk menyimpan konfigurasi berkaitan sambungan pangkalan data. Dalam fail config.php, kita boleh menentukan beberapa pemalar untuk menyimpan maklumat seperti alamat hos pangkalan data, nama pengguna, kata laluan dan nama pangkalan data.

<?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());
}
Salin selepas log masuk

3. Data pertanyaan
Seterusnya, kita boleh menggunakan enjin templat Smarty untuk menanyakan data dalam pangkalan data dan memaparkannya di bahagian hadapan. Untuk kemudahan demonstrasi, kami mengambil pertanyaan dan memaparkan senarai pelajar sebagai contoh.

Pertama, kita perlu mencipta fail templat Smarty bernama "students.tpl" dalam projek. Dalam fail ini, kita boleh mentakrifkan struktur HTML dan sintaks templat Smarty untuk memaparkan senarai pelajar.

Seterusnya, dalam kod PHP, kita boleh mendapatkan data senarai pelajar dengan menanyakan pangkalan data dan menghantar data ke enjin templat 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');
Salin selepas log masuk

Dalam fail "students.tpl", kita boleh menggunakan sintaks templat Smarty untuk memaparkan senarai pelajar secara dinamik.

<!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>
Salin selepas log masuk

4 Masukkan data
Selain menanyakan data, kami juga boleh menggunakan enjin templat Smarty untuk memasukkan data baharu ke dalam pangkalan data.

Pertama, kita perlu mentakrifkan borang dalam fail "add_student.tpl" untuk pengguna memasukkan maklumat pelajar, dan kemudian menyerahkan data kepada pelayan melalui permintaan POST.

Seterusnya, dalam kod PHP, kita boleh menentukan sama ada terdapat permintaan POST, dan kemudian mendapatkan data dalam borang dan memasukkan data ke dalam pangkalan data.

<!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>
Salin selepas log masuk
<?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');
Salin selepas log masuk

Ringkasan:
Melalui pengenalan artikel ini, kami mempelajari cara menggunakan enjin templat Smarty untuk mengendalikan pangkalan data MySQL. Kita boleh menggunakan enjin templat Smarty untuk menanyakan data dalam pangkalan data dan memaparkannya di bahagian hadapan, atau kita boleh memasukkan data yang dimasukkan pengguna ke dalam pangkalan data melalui enjin templat Smarty. Kaedah pembangunan yang memisahkan logik bahagian belakang daripada paparan bahagian hadapan meningkatkan kebolehbacaan dan kebolehselenggaraan kod, dan menjadikannya lebih mudah untuk kami membangunkan PHP.

Atas ialah kandungan terperinci Gunakan enjin templat Smarty untuk mengoptimumkan pembangunan PHP dan MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan