本步驟綱目:
1捻悯、超全局變量$_GET $_POST
2巫糙、MYSQL數(shù)據(jù)庫(kù)設(shè)計(jì)
3截歉、mysqli相關(guān)數(shù)據(jù)庫(kù)操作摇肌,連接及增刪改查(select insert delete update
)操作
下面進(jìn)入正題:
- 1无午、超全局變量
$_GET $_POST
概念性的東西這里不闡述媒役,正如字面上的意思一樣,get的意思是用戶是從提交方式為get的form表單提交過(guò)來(lái)的(form中屬性是method="get")宪迟,如果是post就是提交方式為post酣衷,唯一的區(qū)別是post比get安全,而且提交的內(nèi)容更多次泽。留言板提交方式建議一定是post
// 獲取姓名
$name = $_GET['name'];
$name = $_POST['name'];
// 獲取聯(lián)系方式
$contact= $_GET['contact'];
$contact= $_POST['contact'];
// 獲取留言內(nèi)容穿仪,這里如果提交的內(nèi)容比較多,超過(guò)瀏覽器url長(zhǎng)度限制會(huì)報(bào)錯(cuò)意荤,所以還是建議用post方式
$content= $_GET['content'];
$content= $_POST['content'];
- 2啊片、MYSQL數(shù)據(jù)庫(kù)設(shè)計(jì)
--
-- 表的結(jié)構(gòu) `feedback`
--
CREATE TABLE `feedback` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL COMMENT '姓名',
`contact` varchar(100) NOT NULL COMMENT '聯(lián)系方式',
`content` text NOT NULL COMMENT '留言內(nèi)容',
`addtime` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '記錄時(shí)間',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='留言板數(shù)據(jù)表';
查找記錄操作:
// localhost數(shù)據(jù)庫(kù)地址,本地?cái)?shù)據(jù)庫(kù)一般都是這個(gè)或者127.0.0.1玖像;php_course是數(shù)據(jù)表紫谷,即用戶提交留言信息保存的數(shù)據(jù)表
$mysqli = mysqli_connect('localhost', '數(shù)據(jù)庫(kù)賬號(hào)', '數(shù)據(jù)庫(kù)密碼', 'php_course');
if(mysqli_connect_errno()){
echo '連接數(shù)據(jù)庫(kù)失敗:'.mysqli_connect_error();
exit;
}
mysqli_query($mysqli, "SET NAMES UTF8"); // 因?yàn)槲募幋a是utf8捐寥,所以數(shù)據(jù)記錄集也需要設(shè)置utf8編碼笤昨,否否則查詢出來(lái)的結(jié)果會(huì)亂碼
$sql = "SELECT * FROM feedback"; // 查詢sql語(yǔ)句
$result = mysqli_query($mysqli, $sql); // 執(zhí)行語(yǔ)句
$rows_num = mysqli_affected_rows($mysqli); // 返回記錄數(shù),只是一個(gè)統(tǒng)計(jì)握恳,可以不用
echo $rows_num;
// 開始遍歷記錄集瞒窒,循環(huán)獲取所有feedback表中的所有記錄并賦值到$all_row
$all_row = array();
while($rows = mysqli_fetch_array($result)){
print_r($rows);
$all_row[] = $rows;
}
// $all_row就是feedback的所有結(jié)果集
print_r($all_row);
記錄入庫(kù)操作:
$mysqli = mysqli_connect('localhost', 'root', '', 'php_course');
if(mysqli_connect_errno()){
echo '連接數(shù)據(jù)庫(kù)失敗:'.mysqli_connect_error();
exit;
}
mysqli_query($mysqli, "SET NAMES UTF8");
$sql = 'INSERT INTO feedback (name, contact, content, addtime) VALUES ("測(cè)試", "qq1000", "留言內(nèi)容", '.$time.')';
$result = mysqli_query($mysqli, $sql);
$insert_id = mysqli_insert_id($mysqli); // 返回?cái)?shù)據(jù)表的自增長(zhǎng)ID乡洼,比如新用戶注冊(cè)返回用戶ID
echo $insert_id; // 當(dāng)你在調(diào)試的時(shí)候崇裁,你會(huì)發(fā)現(xiàn)echo是很好的幫手匕坯。
if($insert_id > 0){
// 如果入庫(kù)成功,可以做什么
}
修改和更新:
// 修改更新
// 修改之前需要根據(jù)id查找記錄是否存在寇壳,如果存在則可以修改(這種情況很常用醒颖,比如用戶后臺(tái),除了驗(yàn)證用戶是否登錄還需要驗(yàn)證當(dāng)前修改的記錄是否屬于當(dāng)前用戶)
$mysqli = mysqli_connect('localhost', 'root', '', 'php_course');
if(mysqli_connect_errno()){
echo '連接數(shù)據(jù)庫(kù)失斂茄住:'.mysqli_connect_error();
exit;
}
$sql = "SELECT * FROM feedback WHERE id = 3";
$result = mysqli_query($mysqli, $sql); // 返回一個(gè)資源標(biāo)識(shí)符泞歉,通常是數(shù)字
$row = mysqli_fetch_array($result);
if(!empty($row)){
// 執(zhí)行更新操作
$update_sql = "UPDATE feedback SET name='修改后的名字' WHERE id={$row['id']}";
if(FALSE !== mysqli_query($mysqli, $update_sql)){
// 修改成功
}
}else{
echo '信息不能再或者不屬于你的。';
exit();
}
刪除操作:
// 刪除操作
// 跟修改更新同樣匿辩,刪除之前需要判斷當(dāng)前刪除的記錄是否存在(如果還有圖片附件腰耙,需要先刪除附件再刪除記錄)
$mysqli = mysqli_connect('localhost', 'root', '', 'php_course');
if(mysqli_connect_errno()){
echo '連接數(shù)據(jù)庫(kù)失敗:'.mysqli_connect_error();
exit;
}
$sql = "DELETE FROM feedback WHERE id = 3";
$result = mysqli_query($mysqli, $sql); // 返回一個(gè)資源標(biāo)識(shí)符铲球,通常是數(shù)字
if(FALSE !== $result){
// 刪除成功
}
本節(jié)主要是php+mysql操作挺庞,sql語(yǔ)句相對(duì)使用比較頻繁,但無(wú)非就那幾個(gè)語(yǔ)法稼病,也是我們今后常用的选侨。
- 1、select 查找記錄
- 2然走、insert into 插入數(shù)據(jù)
- 3援制、update 修改數(shù)據(jù)
- 4、delete 刪除數(shù)據(jù)(這個(gè)是硬刪除芍瑞,永久刪除晨仑,通常是找不回來(lái)的,還有一種是軟刪除拆檬,今后會(huì)講到)
同學(xué)記得勤加練習(xí)洪己,熟記這幾個(gè)操作才能掌握。如在學(xué)習(xí)過(guò)程中遇到問(wèn)題竟贯,在下方評(píng)論區(qū)隨時(shí)可以討論答捕。
好了,這節(jié)就到這里屑那。下一節(jié)我們梳理一下代碼噪珊,讓代碼更有可讀性。