Lichen5221 / Report-Daily

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

2021-06-09 #51

Open Lichen5221 opened 3 years ago

Lichen5221 commented 3 years ago

PHP & MySQL 讀取資料

conn.php 檔需多加一個備註:

$conn -> query('SET NAMES UTF8')
$conn -> query('SET time_zone = "+8:00"')

conn.php 在 Git 中必須放在忽視的檔案,否則上傳到 GitHub 就會將帳密跟系統通通送出去。

  1. 下 query
  2. 檢查是否有錯誤
  3. 沒有錯誤,利用 fetch_assoc 拿出結果。
  4. 可以在資料庫利用 SQL 貼上語法確認可以執行,可以執行則在 data.php 中通常也能執行。
<?php

require_once('conn.php');

$result = $conn -> query("select * from users;");

if (!$result) {
  die($conn -> error);
}

while ($row = $result -> fetch_assoc()) {
  echo "ID:" . $row['ID'] . '<br>';
  echo "username:" . $row['username'] . '<br>';
}

?>

PHP & MySQL 新增資料

<?php
  require_once('conn.php');

  if (empty($_POST['username'])) {
    die('請輸入 username');
  }

  $username = $_POST['username'];
  $sql = sprintf(
    "insert into users(username) values('%s')",
    $username
  );
  $result = $conn->query($sql);

  if (!$result) {
    die($conn->error);
  }

  header("Location: test.php"); // 回傳一個 response ,自動跳轉回某頁。
?>

關於 %s 和 %d

ID 會直接遞增,如果跳號是正常。

PHP & MySQL 刪除資料

主頁需加入刪除鍵:

<?php

require_once('conn.php');

$result = $conn -> query("select * from users;");

if (!$result) {
  die($conn -> error);
}

while ($row = $result -> fetch_assoc()) {
  echo "ID:" . $row['ID']. ' ';
  echo "<a href='delete.php?id=". $row['ID'] . "'>刪除</a>" . '<br>';
  echo "username:" . $row['username'] . '<br>';
}

?>
<?php
  require_once('conn.php');

  if (empty($_GET['ID'])) {
    die('請輸入 ID');
  }

  $id = $_GET['ID'];
  $sql = sprintf(
    "delete from users where ID = %d",
    $ID
  );
  echo $sql . '<br>';
  $result = $conn -> query($sql);
  if (!$result) {
    die($conn -> error);
  }

  if ($conn -> affected_rows >= 1) { // 印出影響了幾列
    echo '刪除成功';
  } else {
    echo '查無資料';
  }

  header("Location: test.php");
?>