Lichen5221 / Report-Daily

記錄每日上課內容與作業。
0 stars 0 forks source link

2021-06-08 #50

Open Lichen5221 opened 3 years ago

Lichen5221 commented 3 years ago

INSERT 新增資料

INSERT INTO 資料庫名稱(想要增加的欄位) VALUES(欄位的值)

如果欄位的名稱跟語法一樣就需要反引號。 ID 、 created_at 會自行增加無須填。

UPDATE 修改資料

UPDATE 資料庫名稱 SET 欄位名稱 = 值 WHERE ID = 1

透過 WHERE 指定哪個資料要修改,一樣如果要更改兩個欄位中間使用逗號。如果沒有使用 WHERE 指定,則會整個資料庫該欄位都修正。

DELETE 刪除資料

DELETE FROM 資料庫名稱 WHERE 指定條件

符合條件者全部都會刪除。

許多系統都不是真正的刪除,而是透過使用布林值表達是否刪除的資料,在 SELECT 選擇 0 就代表真正的資料, 1 就是刪除的資料。所以不太會用 DELETE 的語法,避免無可挽回的錯誤。

Lichen5221 commented 3 years ago

初探 PHP

Disable cache

快取為網頁暫存檔案,若是更改後頁面沒有修正,必須打開 delvtool Network 將 Disable cache 打勾,避免網頁讀取原先的暫存檔,造成異常。

如果打勾後網頁還是有錯,代表不是快取的問題。

再次複習 PHP 執行流程

靜態網頁:Apache 為一種伺服器,接收要求去找檔案並回傳。

動態網頁:Apache 同樣接收要求並找檔案,若是 php 檔,會先執行 php 語法,再把 php 語法輸出的結果回傳。

只有被 php 語法包起來的會執行,其他文字都會直接輸出。

GET & POST

在 php 中會為 query string 準備 $_GET 的參數。

前端 php 檔:

<?php
  echo "hello";
?>

<form method = "GET" action = "data.php">
  name: <input name = "name" />
  age: <input name = "age" />
  <input type = "submit" />
</form>

後端 php 檔:

<?php
  if (empty($_GET['name']) || empty($_GET['age'])) {
    echo "請重新輸入"; 
  } else { 
    echo "name:" . $_GET['name'] . '<br>';
    echo "age:" . $_GET['age'] . '<br>';
  } 
?>

其中需注意: isset & empty 的差別

如果要用 POST 就直接把 GET 改成 POST 就好。

在表單中 GET 與 POST 無法混用,但在 php 檔中可以混用,但是不建議,因為會變得非常混亂。

連接資料庫

$conn = new mysqli('連線端(本地端即 localhost)', '帳號名稱', '密碼', '主資料庫名稱')

<?php

$conn = new mysqli('localhost', '帳號名稱', '密碼', 'lichen');

if (!empty($conn -> connect_error)) {
  die('輸入錯誤:' . $conn -> connect_error);
}

if (empty($_GET['name']) || empty($_GET['age'])) {
  echo "請重新輸入"; 
} else { 
  echo "name:" . $_GET['name'] . '<br>';
  echo "age:" . $_GET['age'] . '<br>';
} 

?>

使用 die 指令可以在發生錯誤時終止底下所有程式運行。

通常不會寫在要連線的 php 檔裡,而是會特地寫一個專門連線用的 conn.php ,然後在其他須要連線的 php 檔中加入 require_once('conn.php'); 此行語法連線。