php7連線MySQL製作簡易查詢程式

2020-10-13 13:00:14

簡易教學
假設我們製作的是分班情況查詢程式,將使用PHP7的環境以PDO的方式連線MySQL。
通過學號和姓名查詢自己所在班級。
先來介紹檔案結構和資料庫結構:
PHP:
config.php 存放資料庫設定資訊
cx.php 查詢程式
index.html 使用者介面在這裡插入圖片描述
結構如圖

MySQL:
表名:data
欄位:1.Sid 2.name 3.class
在這裡插入圖片描述
結構如圖

準備就緒,開始吧,現在!
首先構建使用者介面(index.html),兩個簡單的編輯框加上一個簡單的按鈕:

<!DOCTYPE html>
<html lang="cn">
<head>
    <meta charset="UTF-8">
    <title>分班查詢系統</title>
</head>
<body>
<form action="cx.php" method="post">
    <p>學號:<input type="text" name="xuehao"></p>
    <p>姓名: <input type="text" name="xingming"></p>
    <p><input type="submit" name="submit" value="查詢"></p>
</form>
</body>
</html>

好嘞,接下來設定資料庫資訊(config.php)吧

<?php
$server="localhost";//主機的IP地址
$db_username="root";//資料庫使用者名稱
$db_password="123456";//資料庫密碼
$db_name = "data";

然後去編寫我們的主程式(cx.php)

<?php
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST["submit"]))
{
    exit("未檢測到表單提交");
}//檢測是否有submit操作
include ("config.php");
$Sid = $_POST['Sid'];//post獲得學號表單值
$name = $_POST['name'];//post獲得姓名錶單值
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>學號</th><th>姓名</th><th>班級</th></tr>";
class TableRows extends RecursiveIteratorIterator
{
    function __construct($it)
    {
        parent::__construct($it, self::LEAVES_ONLY);
    }

    function current()
    {
        return "<td style='width:150px;border:1px solid black;'>" . parent::current() . "</td>";
    }

    function beginChildren()
    {
        echo "<tr>";
    }

    function endChildren()
    {
        echo "</tr>" . "\n";
    }
}
try {
    $conn = new PDO("mysql:host=$server;dbname=$db_name", $db_username, $db_password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare("SELECT Sid, name, class FROM data where Sid=$Sid and name='$name'");
    $stmt->execute();

    // 設定結果集為關聯陣列
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
    foreach (new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k => $v) {
        echo $v;
    }
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";

到此程式就寫完啦
來試試看吧
在這裡插入圖片描述
在這裡插入圖片描述