1. 程式人生 > 實用技巧 >PHP與資料庫基礎-掌控安全福利課

PHP與資料庫基礎-掌控安全福利課

PHP與資料庫基礎-掌控安全福利課

1:瞭解PHP

PHP是什麼?
PHP能幹什麼?開發網站
輸出一個屬於自己的第一個PHP程式。

<?php
echo 'Hello World';
?>

資料庫簡介及SQL語法

2:人人都會程式設計

起床上班:
打招呼 if 判斷【需要預先設定】

<?php
  $sex='男';
	if($sex=='男'){
    echo'帥哥';
  }else{
    echo"妹妹";
  }
?>

變數 運算 控制
變數 比較運算 分支語句

3:變數教學-變數就是個盒子

計算機特點:運算飛快,忘的也飛快

變數就是個盒子儲存東西的

4:運算子符號

加減乘除取餘比較大於等於小於等於不等於
1+1=2

$Wang = 100000;
$Ma = 150000;
echo $Ma + $Wang

$A1 = 45;
$A = $A1*15;
echo $A
  
$Fang =19;
$Zheng =18;
if($Fang >15){
echo '方先生大於15歲';
}
else{echo '方先生不大於15歲';}

5:控制結構

順序結構 分支語句 迴圈語句

穿衣服 穿鞋子 刷牙洗臉 去上班

$a = 1;
$a = 2;

分支語句  [選擇] 
$sex = '男生';
if($sex == '男生')
{echo 'Hello Boy';}
else
{echo 'Hello';}

迴圈語句
while()  不斷的做某件事

比如說我們現在在喝水 

<?php
$water = 1;
while($water<6){
echo '我喝了'.$water.'杯,服務員再給我杯水吧<br />';
$water = $water +1;
}
echo '謝謝,我喝了'.$water.'杯水,不渴了';
?>

6.你已經學會程式設計

列印1-100
列印1-100偶數 //偶數的定義 能被2整除
遇到7的倍數 列印字元A
遇到13的倍數 列印字元B

7.字串的處理

1.字串是什麼 //字串其實就是文字 程式碼
2.單雙引號的區別
3.字串處理函式

單引號與雙引號區別

雙引號會解析$後的內容

strstr() 字串的匹配和尋找
str_replace() 替換

echo 'echo';
在安全中,很多時候黑客會輸入一些惡意傳參

8.陣列

陣列
實際上是一排櫃子
存東西
號碼牌 標識

號碼牌 Key 鍵 [獨一無二的不會重複]

key鍵 value值

9.製作一個網頁

如何獲取GET|POST傳參

$_GET
$_POST

表單 HTML程式碼

GET傳參 POST傳參

什麼是表單?

表單在網頁中主要負責資料採集功能。
一個表單有三個基本組成部分:
表單標籤:這裡麵包含了處理表單資料所用動態指令碼的URL以及資料提交到伺服器的方法。
表單域:包含了文字框、密碼框、隱藏域、多行文字框、複選框、單選框、下拉選擇框和檔案上傳框等。
表單按鈕:包括提交按鈕、復位按鈕和一般按鈕;用於將資料傳送到伺服器上的動態指令碼或者取消輸入,還可以用表單按鈕來控制其他定義了處理指令碼的處理工作。

使用場景:
登入框
搜尋框
留言框
上傳框
……(各種框)

表單標籤:
<form action= "URL" method="GET/POST" >

表單域:即表單元件,主要有
文字框、密碼框、隱藏域、複選框、單選框、檔案上傳框
多行文字框(文字域)
下拉選擇框
……
表單按鈕:
提交按鈕
復位按鈕
一般按鈕

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="1.php" method="GET">
        <input type="text" name="fenshu">
        <input type="submit" value="提交">
    </form>
</body>
</html>
<?php
    header("Content-Type: text/html;charset=utf-8");
    $fenshu=$_REQUEST['fenshu'];
    if($fenshu>=60){
        echo '及格';
    }else{
        echo '不及格';
    }
?>

10.初識資料庫

資料庫是什麼? // 資料 倉庫
它的結構是怎麼樣的? //庫 表 欄位 記錄
常見的資料庫有哪些? //Mysql Access MSSQL Oracle

資料庫他是靠SQL語句
X張表變成一個庫

11.資料庫結構改變

資料庫結構改變

show databases 檢視有什麼庫

show tables 檢視有什麼表

use 庫名 [進入庫]

desc 表名 查看錶的結構

建立資料庫:Create database 庫名

刪除資料庫:Drop database 庫名

建立表: create table 表名(欄位名 欄位型別,欄位名2 欄位型別)

刪除資料表: Drop table 表名

新增表裡面的欄位:Alter table 表名 add 欄位名 欄位型別

刪除表裡面的欄位 Alter table 表名 drop 欄位名

修改表內欄位名:alter table 表名 change 舊欄位名 新欄位名 新型別;

出現了不知道的東西,欄位型別是什麼?

就是欄位的格式,例如 int 數字 [只能儲存數字]

varchar 字串 [能儲存字串] varchar(255) [能儲存255個字元]

12.增刪改查 對記錄

插入資料(增):
insert into 表名 values (值,值)

insert into 表名(列名1,列名2) values(值1,值2)

查詢語句:
select *from 表名 where 條件

select 欄位名 from 表名 where 條件
修改資料:
update 表名 set 列名 = 新列值 where 列名 = 舊列值

update 表名 set 列名 = 新列值,列名2 = 新列值 where 列名 = 舊列值

刪除資料
Delete from 表 where 列名=列值

13.運算子和結果處理

結果排序
order by 1 排序第一個欄位
order by 欄位名 排序寫了欄位名的這個欄位
預設升序 [asc]
降序[desc]

分頁
limit n,m
limit 從n開始,取m行資料
多行資料一起輸出
group_concat()

模糊查詢:
like %a% 查詢包含a的所有值
like a% 查詢a開頭的所有值
like %a 查詢a結尾的所有值

休眠函式
sleep(2) 伺服器進入摸魚模式,故意拖2秒返回資料

查詢當前所在庫
select database();

數學運算子號:
+ - * /
他和PHP中沒有啥區別

邏輯運算子:
and [滿足兩個條件才可以] 既要這樣,又要那樣
or [滿足一個條件就可以] 這個或那個都行
not [取反]

14.聯合查詢與子查詢

聯合查詢和子查詢

聯合查詢: union 將兩個查詢語句的結果一起輸出 [重複的不輸出]
union all 將兩個查詢語句的結果一起輸出 [重複也輸出]
需要滿足條件,相同列數

子查詢:
在原本的SQL語句中寫小括號,優先執行一個查詢語句

select*from ssg where password=(select uname from nf where id=1); => select *from ssg where password=10

15.PHP與資料庫互動

1.這裡需要使用mysqli擴充套件
2.mysqli_connect 連線資料庫
3.mysqli_select_db() 選擇庫
4.mysqli_query() 執行sql語句

正常網站:
傳參 -> PHP 處理 -> 去資料庫存東西獲取東西 -> 顯示資料

這裡有很核心的一步是PHP能夠操作資料庫,這裡就需要用到PHP的mysqli擴充套件
這個擴充套件時操縱mysql資料庫,自帶的,你可以理解為他是一些函式,當你看到一個函式時mysqli_ 的適合一般都屬於mysqli擴充套件。

Mysqli擴充套件的核心就是PHP去操作資料庫
如何操作
建立連線:

mysqli_connect(連結地址,賬號,密碼,庫名)
=>    $conn=mysql_connect('localhost','root','root','fuli');
mysqli_select_db(連線,庫名)
mysqli_select_db($conn,'fuli');
mysqli_query(連線,執行SQL語句)
$sql = insert into nf value(88,'PHP');
mysqli_query($conn,$sql);

16.完成登陸頁面功能

1.提取資料庫內容
2.進行判斷
3.完成頁面
上節課講了操作資料庫語句,但是很多適合我們需要取出資料庫裡的內容,如何輸出?

$result = mysqli_query($conn,$sql);
mysqli_fetch_array($result);

將資料庫執行的結果轉化為陣列

嘗試整合之前所學的,做一個登陸頁面