前言:
作為前端的我們,雖然不必深究后臺(tái)的種種燒腦的邏輯代碼,但是了解其中的淺顯的原理還是有必要的,因?yàn)槲覀児ぷ鞑豢赡苤蛔鲮o態(tài)的頁(yè)面吧,還是需要和后臺(tái)溝通交流的,不然,工作進(jìn)行不下去,是要被扣工資的。都知道,前臺(tái)是從后臺(tái)取數(shù)據(jù)的,后臺(tái)是從數(shù)據(jù)庫(kù)里面取數(shù)據(jù)的。前臺(tái)到后臺(tái)拿數(shù)據(jù)自然不用多說(shuō)了,無(wú)論是用cookie,session,requset,ajax,這些都能實(shí)現(xiàn)。今天我們我們來(lái)說(shuō)一下,php與后臺(tái)的連接方式,以及他們的具體操作。
一、有關(guān)數(shù)據(jù)庫(kù)的操作
首先我們要進(jìn)入數(shù)據(jù)庫(kù),先建立一個(gè)表
輸入網(wǎng)址:localhost/phpmyadmin
進(jìn)入phpmyadmin點(diǎn)擊新建,比如我們要新建一個(gè)學(xué)生表
有如下信息:學(xué)生的id,姓名,年齡,性別,創(chuàng)建日期,所在城市。那么我們就可以創(chuàng)建下圖所示的表。我們可以看到每一欄有很多的屬性,類型是你要選擇的:像id這樣的肯定是整型的int,名字就是字符型的char,長(zhǎng)度的話,根據(jù)自己的需要,自定義,默認(rèn)是我們選填的,排序規(guī)則是用來(lái)選擇編碼規(guī)則的,如果是中文,需要選擇utf8_bin,
我們可以在id的一欄里的A_I屬性上打鉤,這樣id就可以自增長(zhǎng)了。
然后我們就成功建立了一個(gè)表。
主鍵:指的是一個(gè)列或者多個(gè)列的組合,其值能夠唯一的識(shí)別表中的每一行,具有不重復(fù)性,也就是說(shuō),一個(gè)表中的主鍵名是唯一的,就像我們可以給student表中的id設(shè)置為主鍵,學(xué)生的姓名有重復(fù)的,但是id不會(huì)重復(fù),這樣我們通過(guò)id查找的時(shí)候,不會(huì)出現(xiàn)重復(fù)的情況。
索引:索引是用來(lái)快速定位的,比如說(shuō)這樣的一個(gè)查詢:select * from student where id=1000;如果沒(méi)有索引的話,我們需要遍歷所有的列,知道id=1000被找到為止,這樣不利于系統(tǒng)的性能。
索引的原理:比如我們給student表中的city列設(shè)置了索引,那么系統(tǒng)會(huì)自動(dòng)檢索到所有學(xué)生的city,并且分好類別,等我們查找的時(shí)候,就方便了很多。
二、php的操作
2.1
首先我們要與數(shù)據(jù)庫(kù)建立連接:mysqli_content方法
mysqli_content()函數(shù)是打開(kāi)一個(gè)到MySQL服務(wù)器的新的連接
mysqli_content()語(yǔ)法:
mysqli_content(host,username,password,dbname,port,socket)
參數(shù)詳情:
- host:規(guī)定的主機(jī)名或者IP地址
- username:規(guī)定MySQL用戶名
- password:密碼
- dbname:規(guī)定使用數(shù)據(jù)庫(kù)的名稱
- port:規(guī)定嘗試連接打MySQL服務(wù)器的端口號(hào) 不常用
- socket:規(guī)定socket或者要使用的已命名pipe 不常用
mysqli_content_errno:返回連接錯(cuò)誤的錯(cuò)誤代號(hào),如果連接成功返回0
mysqli_content_error:放回連接錯(cuò)誤的錯(cuò)誤描述
代碼
<?php
$link = mysqli_content('localhost','root','',mydb)
if(mysqli_content_errno($link)){
echo "數(shù)據(jù)庫(kù)連接不上";
exit;
}else{
mysqli_set_charset($link,'utf8');
}
?>
2.2
上一步我們連接數(shù)據(jù)庫(kù),并保證連接成功,才繼續(xù)執(zhí)行下面的代碼。那么這一步,我們就要進(jìn)行通過(guò)php對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查了。
增:在student表中添加一行信息 段大,20,男,2014-1-1,安徽
mysqli_query:執(zhí)行針對(duì)數(shù)據(jù)庫(kù)的查詢
$sql = insert into student (`name`,`age`,`sex`,`regdate`,`city`) values('段大',20,'男','2014-1-1','安徽');//插入語(yǔ)句
$result = mysqli_query($link,$sql);//執(zhí)行插入語(yǔ)句
刪除:刪除名為張三的信息
$sql = delete from student where `name`='張三';
$result = mysqli_query($link,$sql);
修改:把姓名為李四的人的年齡為18
$sql = update student set age=18 where name='李四';
$result = mysqli_query($link,$sql);
查詢:查找姓名為王二的坐在地
$sql = select city from student where `name`=`王二`;
$result = mysqli_query($link,$sql);
2.3
我們進(jìn)行完增刪改查的操作后,就要把結(jié)果輸出,關(guān)閉數(shù)據(jù)庫(kù)的連接。
mysqli_fetch_all(result,resultType):從結(jié)果集中取得所有行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有。
resultType:
- MYSQLI_ASSOC 作為關(guān)聯(lián)數(shù)組顯示
- MYSQLI_NUM 作為數(shù)字?jǐn)?shù)組顯示
- MYSQLI_BOTH 二者都有
mysqli_fetch_assoc(result):從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組。
$row = mysqli_fetch_assoc($result);
mysqli_close($link);