我們在"如何利用ChatGPT等人工智慧工具,深入學習資料庫技能?"提到可以使用ChatGPT來學習習資料庫技能,更在"有了人工智慧生成工具之後,MySQL教學型態會產生什麼變化?"說到 : 「設計者只需輸入對資料庫的需求描述,AI即可自動生成對應的SQL語句、關係模型和各種設計文件」。
現在我們將使用ChatGPT 3.5 免費工具來進行協同設計MySQL資料表單,以及撰寫PHP程式,看看整個程序是否可以順利進行。
第一個專案的需求如下 :
(1) 建立一個MySQL database,字元集utf8mb4,排序原則utf8mb4_general_ci
(2) 以正規化的精神規劃一個「訂單資料管理系統」,可以列出以下訂單資料表 :
(3) 並且點選訂單日期,可以修改訂單日期。
(4) 並且列出訂單資料表或是修改訂單日期時,都必須先登入。
我們就在ChatGPT 3.5 開始輸入指令如下 :
建立一個MySQL database,字元集utf8mb4,排序原則utf8mb4_general_ci 請給我MySQL指令。
CREATE DATABASE your_database_name
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
就使用InfinityFree的phpMyAdmin去執行指令如下 :
原因就在於你告訴ChatGPT給你指令,但是他不知道InfinityFree的介面邏輯。
InfinityFree的MySQL資料庫是使用介面產生,然後進入該資料庫以後,權限僅止於該資料庫,因此才會發生以上 Access denied 的事情。
所以我們不能使用CREATE DATABASE來建立資料庫,我們必須使用介面產生資料庫以後,再用指令修改字元集 (CHARACTER SET ) 以及排序原則 (COLLATE)。
進入InfinityFree的MySQL資料庫管理介面 :
現在請ChatGPT給我修改字元集以及排序原則的語法 :
現有資料庫名稱為mydb,請給我MySQL語法,修改字元集為 utf8mb4,排序原則為utf8mb4_general_ci
ALTER DATABASE mydb
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
光是到這裡有沒有發現,ChatGPT可以給你正確的語法,但是如果你沒有正確的觀念,使用ChatGPT給的正確語法,還是會發生執行錯誤。
因此你應該發現了一個重要的事實 : 如果你什麼都不懂,給你再正確的資訊,你也無法正確地執行。
未來使用AI工具,並不代表你可以什麼都不會,而是你可以不需要知道細節,例如指令怎麼寫,但是你必須知道整個運作的邏輯大架構,例如什麼指令可以在哪裡執行? 以及發生錯誤的原因。
現在可以開始規劃資料表單,我們給ChatGPT指令如下 :
(1) 以正規化的精神規劃一個「訂單資料管理系統」,可以列出訂單資料表 : 訂單編號、客戶編號、訂單日期、訂單狀態 (例如 完成/取消/處理中)、訂單總額。
(2) 並且點選訂單日期,可以修改訂單日期。
(3) 並且列出訂單資料表或是修改訂單日期時,都必須先登入。
請給我建立MySQL資料表單的語法,插入範例資料的語法,以及各php的程式碼。
(2) 並且點選訂單日期,可以修改訂單日期。
(3) 並且列出訂單資料表或是修改訂單日期時,都必須先登入。
請給我建立MySQL資料表單的語法,插入範例資料的語法,以及各php的程式碼。
結果ChatGPT給我的資料表單如下 :
-- 建立客戶資料表
CREATE TABLE IF NOT EXISTS customers (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(100) NOT NULL);
CREATE TABLE IF NOT EXISTS customers (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(100) NOT NULL);
-- 建立訂單資料表
CREATE TABLE IF NOT EXISTS orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT NOT NULL,
order_date DATE NOT NULL,
order_status_id INT NOT NULL,
order_total DECIMAL(10, 2) NOT NULL,
CONSTRAINT fk_customer_id FOREIGN KEY (customer_id) REFERENCES customers(customer_id),
CONSTRAINT fk_order_status_id FOREIGN KEY (order_status_id) REFERENCES order_statuses(status_id)
);
-- 建立訂單狀態資料表
CREATE TABLE IF NOT EXISTS order_statuses (
status_id INT AUTO_INCREMENT PRIMARY KEY,
status_name VARCHAR(50) NOT NULL
);
-- 插入訂單狀態資料
INSERT INTO order_statuses (status_name) VALUES
('處理中'),
('取消'),
('完成');
-- 插入範例客戶資料
INSERT INTO customers (customer_name) VALUES
('客戶A'),
('客戶B'),
('客戶C');
-- 插入範例訂單資料
INSERT INTO orders (customer_id, order_date, order_status_id, order_total) VALUES
(1, '2024-04-26', 1, 1000.00), -- 處理中
(2, '2024-04-25', 3, 1500.00), -- 完成
(3, '2024-04-24', 2, 800.00); -- 取消
實際執行結果如下 :
ALTER TABLE orders ENGINE = InnoDB
ALTER TABLE customers ENGINE = InnoDB
ALTER TABLE order_statuses ENGINE = InnoDB
這樣就把資料表單改為InnoDB了 :
再增加一個users資料表,用在登入時 :
CREATE TABLE `users` (
`user_id` INT AUTO_INCREMENT PRIMARY KEY,
`username` VARCHAR(50) NOT NULL UNIQUE,
`password` VARCHAR(50) NOT NULL ) ENGINE=InnoDB;
`user_id` INT AUTO_INCREMENT PRIMARY KEY,
`username` VARCHAR(50) NOT NULL UNIQUE,
`password` VARCHAR(50) NOT NULL ) ENGINE=InnoDB;
INSERT INTO `users` (`username`,`password`) VALUES ('user1', 'password123'), ('user2', 'password456');
(3) 並且列出訂單資料表或是修改訂單日期時,都必須先登入。
再些微修改了 login.php 如下 :
因為已經改了資料表的結構,所以重新要求ChatGPT給我php程式 :
請給我各php的程式碼,並且在列出程式碼時,告訴我php的檔案名稱 :
(1) 可以列出訂單資料表 : 訂單編號、客戶編號、訂單日期、訂單狀態 (例如 完成/取消/處理中)、訂單總額。
(2) 並且點選訂單日期,可以修改訂單日期。(3) 並且列出訂單資料表或是修改訂單日期時,都必須先登入。
從ChatGPT得到以下 login.php 程式 :
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>登入</title>
</head>
<body>
<h2>登入</h2>
<form action="login.php" method="post">
<label for="username">帳號:</label><br>
<input type="text" id="username" name="username"><br>
<label for="password">密碼:</label><br>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="登入">
</form>
</body>
</html>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 資料庫連線資訊
$servername = "your_servername";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
// 建立資料庫連線
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢查連線是否成功
if ($conn->connect_error) {
die("資料庫連線失敗: " . $conn->connect_error);
}
// 從 POST 請求中取得使用者輸入的帳號密碼
$username = $_POST['username'];
$password = $_POST['password'];
// 使用預備陳述式來防止 SQL 注入攻擊
$stmt = $conn->prepare("SELECT * FROM users WHERE username=? AND password=?");
$stmt->bind_param("ss", $username, $password);
// 執行查詢
$stmt->execute();
// 獲取結果集
$result = $stmt->get_result();
// 檢查是否有符合的帳號密碼
if ($result->num_rows > 0) {
// 登入成功
echo "<p>登入成功</p>";
} else {
// 登入失敗
echo "<p>帳號或密碼錯誤</p>";
}
// 關閉資料庫連線
$stmt->close();
$conn->close();
}
?>
但是你可以發現,ChatGPT給的程式把登入的資訊一併寫在login.php中,這樣一來每次要連線資料庫,就要再把登入的資訊寫出來,這樣並不符合我們寫程式的習慣。
所以經過自己修改,寫了一個 conn.inc.php 程式 :
<?php
// 定義資料庫連線參數
$servername = "xxxx"; // MySQL 主機名稱
$username = "xxxx"; // MySQL 使用者名稱
$password = "xxxx"; // MySQL 密碼
$database = "xxxx"; // 要連線的資料庫名稱
// 建立連線
$conn = new mysqli($servername, $username, $password, $database);
// 檢查連線是否成功
if ($conn->connect_error) {
die("連線失敗: " . $conn->connect_error);
}
// 設定字元集,以避免中文亂碼等問題
$conn->set_charset("utf8mb4");
// 如果需要,您可以在此添加其他資料庫連線設定或程式碼
?>
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>登入</title>
</head>
<body>
<h2>登入</h2>
<form action="login.php" method="post">
<label for="username">帳號:</label><br>
<input type="text" id="username" name="username"><br>
<label for="password">密碼:</label><br>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="登入">
</form>
</body>
</html>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
include "conn.inc.php";
// 從 POST 請求中取得使用者輸入的帳號密碼
$username = $_POST['username'];
$password = $_POST['password'];
// 使用預備陳述式來防止 SQL 注入攻擊
$stmt = $conn->prepare("SELECT * FROM users WHERE username=? AND password=?");
$stmt->bind_param("ss", $username, $password);
// 執行查詢
$stmt->execute();
// 獲取結果集
$result = $stmt->get_result();
// 檢查是否有符合的帳號密碼
if ($result->num_rows > 0) {
// 登入成功
//echo "<p>登入成功</p>";
ob_start();
session_start();
$_SESSION['login'] = "ok";
header("location:list.php");
} else {
// 登入失敗
echo "<p>帳號或密碼錯誤</p>";
}
// 關閉資料庫連線
$stmt->close();
$conn->close();
}
?>
如果登入成功,就會執行list.php。
如果登入不成功,就會出現帳號或密碼錯誤的訊息,要求再次輸入登入的正確帳密。
我們試試向ChatGPT 3.5 要求幫我們做,會如何呢?
指令 : 我要把建立連線的部分寫成 conn.inc.php
以後需要的就用include 請給我login.php及 conn.inc.php
再請ChatGPT給我list.php 來列出訂單,得到如下 :
<?php
輸入正確的帳密後,才會執行list.php。
session_start();
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
header("location: login.php");
exit;
}
$mysqli = new mysqli('localhost', 'your_username', 'your_password', 'your_database');
$result = $mysqli->query("SELECT * FROM orders");
while ($row = $result->fetch_assoc()) {
echo "訂單編號: " . $row['order_id'] . " - 客戶編號: " . $row['customer_id'] . " - 訂單日期: " . $row['order_date'] . " - 訂單狀態: " . $row['order_status'] . " - 訂單總額: " . $row['total_amount'] . "<br>";
}
?>
當然又是一個簡化版,經過修正後得到list.php :
<?php
require_once("check.inc.php");
echo "<P><a href='logout.php'>Logout</a></P>";
include 'conn.inc.php'; // 引入連線設定檔
// 取得訂單資料
$sql = "SELECT orders.order_id, orders.customer_id, orders.order_date, order_statuses.status_name, orders.order_total
FROM orders
INNER JOIN order_statuses ON orders.order_status_id = order_statuses.status_id";
$result = $conn->query($sql);
// 檢查是否有資料
if ($result->num_rows > 0) {
// 存放訂單資料的陣列
$orders = array();
// 將資料取出放入陣列
while ($row = $result->fetch_assoc()) {
$orders[] = $row;
}
} else {
echo "沒有訂單資料";
}
// 釋放資料庫連線
$conn->close();
?>
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>訂單列表</title>
</head>
<body>
<h2>訂單列表</h2>
<table>
<thead>
<tr>
<th>訂單編號</th>
<th>客戶編號</th>
<th>訂單日期</th>
<th>訂單狀態</th>
<th>訂單總額</th>
</tr>
</thead>
<tbody>
<?php foreach ($orders as $order) : ?>
<tr>
<td><?php echo $order["order_id"]; ?></td>
<td><?php echo $order["customer_id"]; ?></td>
<td><a href="orders_date.php?order_id=<?php echo $order['order_id']; ?>"><?php echo $order["order_date"]; ?></a></td>
<td><?php echo $order["status_name"]; ?></td>
<td><?php echo $order["order_total"]; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</body>
</html>
再請ChatGPT給我orders_date.php 來修改訂單日期 :
<?php
session_start();
// 檢查是否已登入,若未登入則導向登入頁面
if (!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true) {
header("location: login.php");
exit;
}
// 檢查是否提供訂單編號
if (!isset($_GET["order_id"]) || empty($_GET["order_id"])) {
header("location: orders.php");
exit;
}
// 資料庫連線資訊
$servername = "your_servername";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
// 建立資料庫連線
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢查連線是否成功
if ($conn->connect_error) {
die("資料庫連線失敗: " . $conn->connect_error);
}
$order_id = $_GET["order_id"];
// 檢查是否有 POST 請求且有提供新的訂單日期
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["new_order_date"])) {
// 接收表單提交的新訂單日期
$new_order_date = $_POST["new_order_date"];
// 更新訂單日期
$sql = "UPDATE orders SET order_date='$new_order_date' WHERE order_id=$order_id";
if ($conn->query($sql) === TRUE) {
echo "訂單日期更新成功";
} else {
echo "更新失敗: " . $conn->error;
}
}
// 取得特定訂單資料
$sql = "SELECT order_id, customer_id, order_date FROM orders WHERE order_id = $order_id";
$result = $conn->query($sql);
// 檢查是否有資料
if ($result->num_rows > 0) {
// 存放訂單資料的陣列
$order = $result->fetch_assoc();
} else {
echo "找不到該訂單";
exit;
}
// 釋放資料庫連線
$conn->close();
?>
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>修改訂單日期</title>
</head>
<body>
<h2>修改訂單日期 - 訂單編號: <?php echo $order["order_id"]; ?></h2>
<form action="orders_date.php?order_id=<?php echo $order["order_id"]; ?>" method="post">
<label for="new_order_date">新的訂單日期:</label><br>
<input type="date" id="new_order_date" name="new_order_date" value="<?php echo $order["order_date"]; ?>"><br><br>
<input type="submit" value="更新日期">
</form>
<a href="orders.php">返回訂單列表</a>
<a href="logout.php">登出</a>
</body>
</html>
我們再些微修改為以下 :
<?php
require_once("check.inc.php");
echo "<P><a href='logout.php'>Logout</a></P>";
include 'conn.inc.php'; // 引入連線設定檔
$order_id = $_GET['order_id'];
// 檢查是否有 POST 請求且有提供新的訂單日期
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["new_order_date"])) {
// 接收表單提交的新訂單日期
$new_order_date = $_POST["new_order_date"];
// 更新訂單日期
$sql = "UPDATE orders SET order_date='$new_order_date' WHERE order_id=$order_id";
if ($conn->query($sql) === TRUE) {
echo "訂單日期更新成功";
} else {
echo "更新失敗: " . $conn->error;
}
}
// 取得特定訂單資料
$sql = "SELECT order_id, customer_id, order_date FROM orders WHERE order_id = $order_id";
$result = $conn->query($sql);
// 檢查是否有資料
if ($result->num_rows > 0) {
// 存放訂單資料的陣列
$order = $result->fetch_assoc();
} else {
echo "找不到該訂單";
exit;
}
// 釋放資料庫連線
$conn->close();
?>
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>修改訂單日期</title>
</head>
<body>
<h2>修改訂單日期 - 訂單編號: <?php echo $order["order_id"]; ?></h2>
<form action="orders_date.php?order_id=<?php echo $order["order_id"]; ?>" method="post">
<label for="new_order_date">新的訂單日期:</label><br>
<input type="date" id="new_order_date" name="new_order_date" value="<?php echo $order["order_date"]; ?>"><br><br>
<input type="submit" value="更新日期">
</form>
<a href="list.php">返回訂單列表</a>
</body>
</html>
由以上的操作經驗,ChatGPT 3.5 在執行上尚可,但是他會偷懶只給部分結果。
你必須要知道再要求那些修正,最後才會得到滿意的答案。
整個完成後,執行結果如下 :
login.php 登入畫面
如果沒有輸入正確的帳密,就會持續停留在login.php。
list.php 列表畫面
(1) login.php
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>登入</title>
</head>
<body>
<h2>登入</h2>
<form action="login.php" method="post">
<label for="username">帳號:</label><br>
<input type="text" id="username" name="username"><br>
<label for="password">密碼:</label><br>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="登入">
</form>
</body>
</html>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
include "conn.inc.php";
// 從 POST 請求中取得使用者輸入的帳號密碼
$username = $_POST['username'];
$password = $_POST['password'];
// 使用預備陳述式來防止 SQL 注入攻擊
$stmt = $conn->prepare("SELECT * FROM users WHERE username=? AND password=?");
$stmt->bind_param("ss", $username, $password);
// 執行查詢
$stmt->execute();
// 獲取結果集
$result = $stmt->get_result();
// 檢查是否有符合的帳號密碼
if ($result->num_rows > 0) {
// 登入成功
//echo "<p>登入成功</p>";
ob_start();
session_start();
$_SESSION['login'] = 'ok';
header("location:list.php");
} else {
// 登入失敗
echo "<p>帳號或密碼錯誤</p>";
}
// 關閉資料庫連線
$stmt->close();
$conn->close();
}
?>
(2) logout.php
<?php
session_start();
session_destroy();
header('Refresh: 1; URL = login.php');
?>
(3) conn.inc.php
<?php
// 定義資料庫連線參數
$servername = "xxx"; // MySQL 主機名稱
$username = "xxx"; // MySQL 使用者名稱
$password = "xxx"; // MySQL 密碼
$database = "xxx"; // 要連線的資料庫名稱
// 建立連線
$conn = new mysqli($servername, $username, $password, $database);
// 檢查連線是否成功
if ($conn->connect_error) {
die("連線失敗: " . $conn->connect_error);
}
// 設定字元集,以避免中文亂碼等問題
$conn->set_charset("utf8mb4");
// 如果需要,您可以在此添加其他資料庫連線設定或程式碼
?>
(4) check.inc.php
<?php
session_start();
if (($_SESSION['login'] !='ok')) {
header("location:login.php");
}
?>
(5) list.php
<?php
require_once("check.inc.php");
echo "<P><a href='logout.php'>Logout</a></P>";
include 'conn.inc.php'; // 引入連線設定檔
// 取得訂單資料
$sql = "SELECT orders.order_id, orders.customer_id, orders.order_date, order_statuses.status_name, orders.order_total
FROM orders
INNER JOIN order_statuses ON orders.order_status_id = order_statuses.status_id";
$result = $conn->query($sql);
// 檢查是否有資料
if ($result->num_rows > 0) {
// 存放訂單資料的陣列
$orders = array();
// 將資料取出放入陣列
while ($row = $result->fetch_assoc()) {
$orders[] = $row;
}
} else {
echo "沒有訂單資料";
}
// 釋放資料庫連線
$conn->close();
?>
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>訂單列表</title>
</head>
<body>
<h2>訂單列表</h2>
<table>
<thead>
<tr>
<th>訂單編號</th>
<th>客戶編號</th>
<th>訂單日期</th>
<th>訂單狀態</th>
<th>訂單總額</th>
</tr>
</thead>
<tbody>
<?php foreach ($orders as $order) : ?>
<tr>
<td><?php echo $order["order_id"]; ?></td>
<td><?php echo $order["customer_id"]; ?></td>
<td><a href="orders_date.php?order_id=<?php echo $order['order_id']; ?>"><?php echo $order["order_date"]; ?></a></td>
<td><?php echo $order["status_name"]; ?></td>
<td><?php echo $order["order_total"]; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</body>
</html>
(6) orders_date.php
<?php
require_once("check.inc.php");
echo "<P><a href='logout.php'>Logout</a></P>";
include 'conn.inc.php'; // 引入連線設定檔
$order_id = $_GET['order_id'] ?? null;
// 檢查是否有 POST 請求且有提供新的訂單日期
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["new_order_date"])) {
// 接收表單提交的新訂單日期
$new_order_date = $_POST["new_order_date"];
// 更新訂單日期
$sql = "UPDATE orders SET order_date='$new_order_date' WHERE order_id=$order_id";
if ($conn->query($sql) === TRUE) {
echo "訂單日期更新成功";
} else {
echo "更新失敗: " . $conn->error;
}
}
// 取得特定訂單資料
$sql = "SELECT order_id, customer_id, order_date FROM orders WHERE order_id = $order_id";
$result = $conn->query($sql);
// 檢查是否有資料
if ($result->num_rows > 0) {
// 存放訂單資料的陣列
$order = $result->fetch_assoc();
} else {
echo "找不到該訂單";
exit;
}
// 釋放資料庫連線
$conn->close();
?>
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>修改訂單日期</title>
</head>
<body>
<h2>修改訂單日期 - 訂單編號: <?php echo $order["order_id"]; ?></h2>
<form action="orders_date.php?order_id=<?php echo $order["order_id"]; ?>" method="post">
<label for="new_order_date">新的訂單日期:</label><br>
<input type="date" id="new_order_date" name="new_order_date" value="<?php echo $order["order_date"]; ?>"><br><br>
<input type="submit" value="更新日期">
</form>
<a href="list.php">返回訂單列表</a>
</body>
</html>
如果改用ChatGPT 4.0,狀況會有何差異嗎?
我們打算給ChatGPT 4.0 以下的指令 :
(1) 建立一個MySQL database,字元集utf8mb4,排序原則utf8mb4_general_ci,給我MySQL指令。
(2) 以正規化的精神規劃一個「訂單資料管理系統」,可以列出以下訂單資料表 :
訂單編號、客戶編號、訂單日期、訂單狀態 (例如 完成/取消/處理中)、訂單總額。
給我建置資料表的MySQL指令,以及插入範例資料的MySQL指令。
給我列出訂單資料表的list.php程式。
(3) 並且點選訂單日期,可以修改訂單日期,給我修改訂單日期的order_date.php程式。
(4) 並且列出訂單資料表或是修改訂單日期時,都必須先登入,給我login.php,logout.php。
(5) 把連接資料庫的程式寫成 conn.inc.php,讓需要的程式可以include
(6) 給我一個 check.inc.php,檢查是否登入,讓需要登入的程式可以include
如果未登入則轉到 login.php
ChatGPT給了以下答覆 :
以上這個答案跟ChatGPT 3.5一樣,你沒有辦法直接用在InfinityFree的環境上,你還是必須先建立資料庫,然後再修改字元集、排序原則、儲存引擎。
結論 :
(1) ChatGPT 4.0 比較能夠一次做較多事情,ChatGPT 3.5 中間比較容易罷工。
(2) 給ChatGPT 4.0 的指令可以比較複雜,但是給ChatGPT 3.5的指令要很清楚才行。
(3) ChatGPT 4.0 與 ChatGPT 3.5的答案,結果差異不大。
0 留言