https://www.bilibili.com/video/av21010200/?p=34
1.鏈接數(shù)據(jù)庫(kù)
$link=mysqli_connect("localhost","root","password");
2.判斷是否連接成功
if(!$link){
die("connect error:".mysqli_connect_error);
}
else?
echo "連接成功";?
3.設(shè)置字符集
mysqli_set_charset($link,"utf8");
4.選擇數(shù)據(jù)庫(kù)
mysqli_select_db($link,test);? //test是數(shù)據(jù)庫(kù)
5.準(zhǔn)備sql語(yǔ)句
$sql="select * from tb_admin ";? //tb_admin是取的表名
6.發(fā)送sql語(yǔ)句
$obj=mysqli_query($link,$sql);? //失敗時(shí)返回?FALSE竿音,通過(guò)mysqli_query()?成功執(zhí)行SELECT, SHOW, DESCRIBE或?EXPLAIN查詢會(huì)返回一個(gè)mysqli_result對(duì)象轧邪,其他查詢則返回TRUE往堡。
7.處理結(jié)果集
$result=mysqli_fetch_assoc($obj);? //會(huì)自動(dòng)取下一行
$result=mysqli_fetch_assoc($obj);
$result=mysqli_fetch_assoc($obj);? //每一句都是取表中的一行懂扼,第一句取第一行蒲凶,第二句取第二行。返回的是一維的關(guān)聯(lián)數(shù)組
8.關(guān)閉數(shù)據(jù)庫(kù)庫(kù)(釋放資源)
mysqli_close($link);
9. 常用函數(shù)
$result=mysqli_fetch_assoc($obj) 返回帶關(guān)聯(lián)的一個(gè)數(shù)組帝雇,當(dāng)表中字段豎向排列時(shí)绪爸,是一個(gè)第一列數(shù)據(jù)的關(guān)聯(lián)數(shù)組
取所有行數(shù)據(jù),用循環(huán)
while(mysql_fetch_assoc($obj))
????var_dump(mysql_fetch_assoc($obj));
$result=mysqli_fetch_row($obj)返回帶索引的一個(gè)數(shù)組厕宗,其余與上個(gè)相同
$result=mysqli_fetch_array($obj)返回既帶索引又帶關(guān)聯(lián)的數(shù)組
$result=mysqli_num_rows($obj) 返回表的行數(shù)画舌,即有多少條數(shù)據(jù) (在sql看來(lái),字段是橫著排列的已慢?PHPmyadmin中是豎著的)
以上的函數(shù)必須先執(zhí)行查詢操作 即 select * from table_name(至少插入后執(zhí)行會(huì)報(bào)錯(cuò))
$result=mysqli_affected_rows($link)??返回前一次 MySQL 操作(SELECT骗炉、INSERT、UPDATE蛇受、REPLACE句葵、DELETE)所影響的記錄行數(shù)
$result=mysqli_insert_id($link)返回最后一次插入的id
10.插入數(shù)據(jù)
$sql="insert into student(name ,id ,age) values('chen','2011414','18')";? //student是表名 name,id,age是字段
$obj=mysqli_query($link,$sql);? //插入操作返回的是true或false
11.刪除,修改和添加
這是我的代碼,注意點(diǎn)擊刪除后,id會(huì)通過(guò)url傳輸兢仰,鏈接標(biāo)簽有疑惑乍丈,引號(hào)問(wèn)題。
點(diǎn)擊john的刪處后把将,注意url上的id轻专。是屬于john的id
刪除操作 delete.php
sql語(yǔ)句 delete from table_name where xxx="xxxxxx"
比如此處是根據(jù)id刪除,看圖中注釋
修改操作 change.php
sql語(yǔ)句:update table_name set? name="xxx", age="xxxx" where id="xxx"
注:name age id是我數(shù)據(jù)庫(kù)里定義的字段察蹲。不建議修改id请垛, id最好是唯一的。
? ? ? ? ????? $name="chenrui"? ;
? ? ? ? ? ? ? ?則對(duì)應(yīng)sql語(yǔ)句為
?????????????update table_name set? name='$name'? ?where id="xxx"
注意即使$name已經(jīng)是字符串了洽议,但在sql語(yǔ)句中依然要給變量加單引號(hào)
在主頁(yè)面點(diǎn)擊修改后宗收,會(huì)跳到修改頁(yè)面(form表單實(shí)現(xiàn)),點(diǎn)擊提交后亚兄,會(huì)跳到另一個(gè)用于修改數(shù)據(jù)庫(kù)的頁(yè)面混稽。
test.php 主頁(yè)面
change.php 主要是表單操作,用于輸入修改的值,將修改的值通過(guò)url(前提表單使用get方法)傳給修改數(shù)據(jù)庫(kù)的php文件匈勋。當(dāng)<input>有name屬性時(shí)礼旅,就會(huì)通過(guò)url傳遞name屬性,屬性的值就是輸入的內(nèi)容洽洁。由于無(wú)法修改id痘系,所以通過(guò)hidden類型的<input>傳遞id?
hidden屬性
點(diǎn)擊提交后,url如圖
dochange.php 用于修改數(shù)據(jù)庫(kù)的數(shù)據(jù)饿自。
用$_GET變量從url獲取數(shù)據(jù)汰翠。$_GET["name"]中的name下標(biāo)是<input>的name屬性,這個(gè)數(shù)組的值才是修改時(shí)填入的內(nèi)容
添加操作
add.php 創(chuàng)建一個(gè)表單璃俗,用于輸入添加的信息,id不用輸入悉默,數(shù)據(jù)庫(kù)自動(dòng)分配
doadd.php 向數(shù)據(jù)庫(kù)添加數(shù)據(jù)? 主要是用insert into 語(yǔ)句
分頁(yè)的實(shí)現(xiàn)
sql語(yǔ)句
?SELECT * FROM table LIMIT [offset,] rows?
? LIMIT 子句可以被用于強(qiáng)制 SELECT 語(yǔ)句返回指定的記錄數(shù)城豁。LIMIT 接受一個(gè)或兩個(gè)數(shù)字參數(shù)。參數(shù)必須是一個(gè)整數(shù)常量抄课。如果給定兩個(gè)參數(shù)唱星,第一個(gè)參數(shù)指定第一個(gè)返回記錄行的偏移量,第二個(gè)參數(shù)指定返回記錄行的最大數(shù)目跟磨。初始記錄行的偏移量是 0(而不是 1)
SELECT?*?FROMtable?LIMIT?5,10;?//?檢索記錄行?6-15
sql的count()函數(shù)
select count(column_name)? [ as? xxx ]? from table [ where column_name=xxxxx]
在php中间聊,必須用下面方式才能得到結(jié)果。是一個(gè)關(guān)聯(lián)數(shù)組抵拘,鍵值就是個(gè)數(shù)
最終代碼 還是在test.php內(nèi)
注冊(cè)登錄
登錄使用到的關(guān)鍵sql語(yǔ)句
$sql="select username , password from user where username='$username'and password= '$password' ";
mysqli_num_rows[$obj]用于判斷查詢語(yǔ)句查到了幾條記錄哎榴。如果為真 說(shuō)明賬戶密碼輸入正確。
注冊(cè)用到的
$sql2 = "insert into user(username , password) values('$username' , '$password')";
login.php
dologin.php
regist.php
doregist.php