類
1.一個類主要包括屬性和方法
2.public表示通路修飾符,意思是公開的,沒有隐藏。在類的外部是可以通路這些公開的屬性的方法function是定義方法的關鍵字。
3.private:通路修飾符,表示私有的。被private修飾的屬性和方法,在類的外部是不能通路的。
4.屬性是用來儲存資料的,一般是名詞;方法是用來表示行為的,一般是動詞。
5.方法前如果不寫通路修飾符,内容預設是公開的。
6.$this : 表示目前對象,隻有在類的方法中,當通路成員變量(屬性)或自己的方法時,才會用到$this。
構造和析構方法
1.構造方法的作用:初始化成員變量(屬性)。
構造方法不能主動調用,也就是你不能通過對象去通路構造方法,當我們執行個體化對象時,構造方法會自動執行。
在PHP中,同一個類中隻能聲明一個構造方法。
2.析構方法的作用:處理對象善後的工作。
析構方法是對象在銷毀之前最後一個被對象自動調用的方法。
析構函數不能帶參數。
對象的引用都是放在棧記憶體中的,由于棧的後進先出特點,最後建立的對象會被最先釋放,多以先自動調用最後一個對象的析構方法,最後才調用倒數第二個對象的析構方法。
資料庫連接配接
1.如果各個方法都要使用的,必須要把他設定為屬性;如果隻有一個方法使用,并且不想對外公開,可以把它設為局部的,設在方法裡。
2.通路對象中的屬性和方法,要使用符号->。通路屬性時,屬性名稱的$不用添加。
3.指派的參數稱為:帶預設值參數。一定要把帶預設值參數寫在其他參數的後面。
4.mysqli_connect_errno()函數:檢測連接配接是否成功,如果成功傳回0,如果失敗則會傳回錯誤碼。
mysqli_connect_error()函數:傳回上一次連接配接的錯誤描述。
mysqli_set_charset()函數:設定資料庫連接配接字元集。
5.require_once()函數:require_once 如果有多個同路徑的require_once,隻執行一次。
include()和require()相同點:語句包括并運作指定檔案。
include()和require()不同點:報錯時,include()會産生一個警告,但是腳本會繼續進行;require()會導緻一個緻命的錯誤,會使程式在這個地方終止。
實作資料的增删改查
1.增加:insert into 方法:add ,需要兩個參數。該方法主要實作:将調用者傳遞的資料,變成sql指令,最後執行sql指令,并傳回結果。
2.查詢:mysqli_query()函數傳回結果:針對成功的SELECT、SHOW、DESCRIBE等查詢會傳回一個mysqli_result對象,針對其他成功的查詢将會傳回TRUE,失敗傳回FALSE。
3.mysqli_fetch_assoc()從結果集中取一行作為關聯數組。
4.建構sql指令時,變量名加花括号是為了防止字元串串聯。
使用别的方法
1.在周遊$data時,我使用的方法是先判斷一下$v是不是字元串,之後再用join分割。
//添加資料
function add($table, $data)
{
if (!is_array($data)) {
die('第二參數必須是關聯數組');
}
$fields = $values = '';
//周遊$data,建構出字段清單和值清單
foreach ($data as $k => $v) {
//判斷$v是不是字元串
if (is_string($v)) {
$v = "'$v'";
}
$newdata[$k] = $v;
}
//用逗号分割
join(",", $k);
join(",", $k);
//建構sql指令
$sql = "insert into {$table} ($k) values ($v)";
//執行sql指令
$ret = mysqli_query($this->conn, $sql);
return $ret;
}
2.老師用的是foreach()的方法來周遊數組,它可以周遊任何類型的數組,可以隻周遊值,也可以同時周遊鍵和值,比較友善;我用的是for循環來周遊數組。
function delete($table, $where = '1=1')
{
$condition = '';
if (is_array($where)) {
$k=array_keys($where);
$v=array_value($where);
for ($i=0;$i<count($where);$i++) {
echo "{$k[$i]}='{$v[$i]}'";
}
} else {
$condition = $where;
}
$sql = "delete from {$table} where {$condition}";
$ret = mysqli_query($this->conn, $sql);
echo "删除成功";
return $ret;
}