實機操作練習題

  1. 登入
    1. 遠端登入 kvm3 虛擬機。
    2. 以 root 身份登入 mariadb。
  2. 新增資料庫、資料表。
    1. 建立資料庫 dbq。
    2. 在資料庫 dbq 中建立資料表 tblq,包含下列欄位:
      1. id int not null auto_increment,
      2. subject varchar(100) not null,
      3. student varchar(40) not null,
      4. score tinyint,
      5. primary key (id)
    3. 在資料表 tblq,「依序」加入五筆資料,觀察 id 編號, 過程中若增加又刪除紀錄,會影響 id 編號,評分也無法過關。
      subject perl, student abc321, score 79
      subject ruby, student abc234, score 65
      id 10, subject PHP, student abc124, score 90
      id 11, subject python, student abc222, score 45
      subject ruby, student xyz222, score 85
      
  3. 在 /var/www/html/ 目錄下撰寫以下 php 程式,其中變數 $student 由 get 變數 $_GET('student') 取得。
    1. 使用以下 php 範例程式,其中 ........ 依要求填入 mysql 語法,其中資料庫名稱依題目要求修改。
      <?php
      $dbhost = 'localhost:3306';
      $dbuser = 'root';
      $dbpass = '123qwe';
      $student = $_GET['student'];
      $conn = mysqli_connect($dbhost, $dbuser, $dbpass) 
      	or die(mysqli_connect_error().PHP_EOL);
      mysqli_select_db( $conn, 'dbq' )
      	or die('Error: '.mysqli_error($conn).PHP_EOL);
      $sql = ".............";
      $retval = mysqli_query( $conn, $sql )
      	or die('Error: '.mysqli_error($conn).PHP_EOL);
      mysqli_free_result($retval);
      mysqli_close($conn);
      ?>
      
    2. tblq1.php:在資料表 tblq 中新增一筆 student=$student 的資料,id 自動產生,score=12,其他欄位自行決定內容。
    3. tblq2.php:更新資料表 tblq 中 student=$student 的資料,將其 subject 橍位改成 MARIADB
    4. tblq3.php:刪除資料表 tblq 中 student=$student 的資料。
  4. 使用 GET 變數$_GET['student'] 由網址加問號取得內容,如以下範例變數 student=dywang,字串加不加引號,視 php 程式是否已加引號。
    http://kvm3.deyu.wang/tblq1.php?student=dywang
    
  5. 在 /var/www/html/ 目錄下撰寫以下 php 程式,其中變數 $str 由 get 變數 $_GET('str') 取得。
    1. 使用以下 php 範例程式,其中 ........ 依要求填入 mysql 語法,其中資料庫名稱依題目要求修改。
      <?php
      $dbhost = 'localhost:3306';
      $dbuser = 'root';
      $dbpass = '123qwe';
      $str = $_GET['str'];
      $conn = mysqli_connect($dbhost, $dbuser, $dbpass) 
      	or die(mysqli_connect_error().PHP_EOL);
      mysqli_select_db( $conn, 'dbq' )
      	or die('Error: '.mysqli_error($conn).PHP_EOL);
      $sql = ".............";
      $retval = mysqli_query( $conn, $sql )
      	or die(mysqli_error().PHP_EOL);
      while($row = mysqli_fetch_array($retval, MYSQLI_NUM)) {
      	echo "{$row[0]}\t{$row[1]}\t{$row[2]}\t{$row[3]}\n";
      }
      mysqli_free_result($retval);
      mysqli_close($conn);
      ?>
      
    2. tblq4.php:從資料表 tblq 中找出所有欄位資料並以 $str 排序。
    3. tblq5.php:從資料表 tblq 中找出所有欄位資料並以 $str 排序,限制只列 2 筆,且位移 1 筆。
    4. tblq6.php:從資料表 tblq 中找出 student 前面兩個字元為 ab,且 score 小於 $str 的所有欄位資料。
  6. php 程式碼最後一行 ?>,後面若加空白行,curl 連線也會輸出此空白行,所以不要加空白行。