php数据库录入和输出,PHP数据库之CURD操作
前言
PHP作為一門服務(wù)端的腳本語言,既可以接受來自瀏覽器端的頁面請求,也可以將頁面的請求數(shù)據(jù)發(fā)送往數(shù)據(jù)庫中儲存起來,讓頁面不在靜態(tài),處于動態(tài)可以產(chǎn)生交互行為的狀態(tài),所以今天我們來認識下有關(guān)于數(shù)據(jù)庫的一些東西。
數(shù)據(jù)庫的連接
首先
打開xampp apache服務(wù)器和 MYSQL database
image.png
打開localhost/phpmyadmin,創(chuàng)建一張數(shù)據(jù)表
image.png
根據(jù)關(guān)系數(shù)據(jù)庫第二范式,每個表需要設(shè)置一個主鍵,在這里一般需要將id設(shè)為主鍵,主鍵是一個表中的約束。這個約束,一張表只能有一個,一般作為ID使用,這個約束一般給別人外鍵引用。這個約束的功能就是,不可重復(fù),保證了唯一性,正是這種特性,使得大多數(shù)人都把他作為表中ID的字段使用。同時為了提高了SQL Server系統(tǒng)的性能,我們可以設(shè)置索引,加快數(shù)據(jù)的查詢速度與減少系統(tǒng)的響應(yīng)時間 ,在這里我們將id設(shè)為索引。
完成這些操作我們可以在編輯器上編寫我們的代碼連接服務(wù)器啦!!!
PHP連接數(shù)據(jù)庫的方法通過 $link=mysqli_connect("數(shù)據(jù)庫服務(wù)器地址","數(shù)據(jù)庫登錄用戶","數(shù)據(jù)庫登錄密碼","數(shù)據(jù)庫名稱")
在這里數(shù)據(jù)庫服務(wù)器地址默認是localhost:端口號;數(shù)據(jù)庫登錄用戶默認擁有服務(wù)器進程的用戶的名稱,數(shù)據(jù)庫登錄密碼默認值是”“。
$link = mysqli_connect(“l(fā)ocalhost”,"root","","mydb");
?>
寫好后我們還要判斷下我們是否連接上了我們的數(shù)據(jù)庫,不怕一萬,就怕萬一埋。
判斷數(shù)據(jù)庫的連接正常
if(mysqli_connect_errno($link)){
echo "錯誤號:".mysqli_connect_errno($link);
echo "
錯誤描述:".mysqli_connect_error($link);
echo "
錯誤描述:網(wǎng)站錯誤請聯(lián)系管理員";
exit;
}
在這里加入mysqli_connect_errno判斷語句,當(dāng)沒有連接上數(shù)據(jù)庫的時候,我們就輸出人性化提示報錯,然后就將程序結(jié)束。
我們介紹的CURD操作說白了,就是增 刪 改 查,create! update !read !delete!
增刪改查之”增“
確定我們的數(shù)據(jù)庫連接正常后,我們就開始我們增刪改查的第一步,增!!
一張空表啥都沒有,所以需要我們錄入數(shù)據(jù)將其補滿也方便之后的前后臺交互查詢調(diào)用。我們在這里需要使用以下語句
1.$sql= insert into 表名(表的字段1,表的字段2)values(字段1的值,字段2的值) ;
2.$sql= insert into 表名 表的字段一=‘字段一的值’,表的字段二=‘字段二的值’;
然后我們需要執(zhí)行查詢語句mysql_query() 僅對 SELECT,SHOW,EXPLAIN 或 DESCRIBE 語句返回一個資源標識符,如果查詢執(zhí)行不正確則返回 FALSE。對于其它類型的 SQL 語句,mysql_query() 在執(zhí)行成功時返回 TRUE,出錯時返回 FALSE。
1.mysqli_query($link,$sql);
然后執(zhí)行關(guān)閉數(shù)據(jù)庫方法,關(guān)閉數(shù)據(jù)庫
mysqli_close($link);
我們來試著往數(shù)據(jù)庫里插入一個數(shù)據(jù)
$link = mysqli_connect("localhost","root","","mydb");
mysqli_set_charset($link,"utf8");//進行編碼,防止中文出現(xiàn)亂碼
$sql = "insert into menu set name='叉燒包',price=20";
$result=mysqli_query($link,$sql);
mysqli_close($link);
image.png
增刪改查之”刪“
當(dāng)我們的數(shù)據(jù)錄入錯誤的時候我們當(dāng)然就要把它刪去,保持數(shù)據(jù)的準確性
這里我們需要使用下列語句,這里需要借助索引減少搜查范圍
delete from 表名 where
我們來嘗試下
$link = mysqli_connect("localhost","root","","mydb");
mysqli_set_charset($link,"utf8");
$sql = "delete from menu where id=13";
$result=mysqli_query($link,$sql);
mysqli_close($link);
?>
刪除前
刪除后
增刪改查之”改“
update 表名 set 字段1='值',字段2='值' where 條件
同樣我們來試試將叉燒包的價格改到288
$link = mysqli_connect("localhost","root","","mydb");
mysqli_set_charset($link,"utf8");
$sql = "update menu set price='288' where id=15";
$result=mysqli_query($link,$sql);
mysqli_close($link);
?>
image.png
增刪改查之”查“
這應(yīng)該是數(shù)據(jù)庫里面最麻煩的部分,查詢數(shù)據(jù),各種姿勢查詢。
select 字段1,字段2... from 表名 where 條件
$link = mysqli_connect("localhost","root","","mydb");
mysqli_set_charset($link,"utf8");
$sql = "select name,price from menu where id=15";
$result=mysqli_query($link,$sql);
print_r( mysqli_fetch_all($result,MYSQLI_ASSOC));//按關(guān)聯(lián)數(shù)組輸出所有結(jié)果集
mysqli_close($link);
?>
查詢結(jié)果
image.png
帶查詢限制的查詢語句
select 字段 from 表名 where 條件 limit size
limit 1表示只查詢記錄中的一條
$link = mysqli_connect("localhost","root","","mydb");
mysqli_set_charset($link,"utf8");
$sql = "select * from menu where price='288' limit 1";
$result=mysqli_query($link,$sql);
print_r( mysqli_fetch_all($result,MYSQLI_ASSOC));
mysqli_close($link);
?>
查詢結(jié)果
image.png
select 字段 from 表名 where 條件 limit start,size
limit start,size 從start位置查詢size條
image.png
排序
select 字段(*)from 表名 where 條件 order by 字段 desc|asc (降序、升序)
我們來看下效果
$link = mysqli_connect("localhost","root","","mydb");
mysqli_set_charset($link,"utf8");
$sql = "select * from menu order by id DESC";
$result=mysqli_query($link,$sql);
print_r( mysqli_fetch_all($result,MYSQLI_ASSOC));
mysqli_close($link);
?>
我們可以看到表里的數(shù)據(jù)按id降序排序
image.png
分組統(tǒng)計查詢
select count(*) from 表名 可以獲得表里所有行數(shù)
$link = mysqli_connect("localhost","root","","mydb");
mysqli_set_charset($link,"utf8");
$sql = "select count(*) from menu";
$result=mysqli_query($link,$sql);
print_r( mysqli_fetch_all($result,MYSQLI_ASSOC));
mysqli_close($link);
?>
我們來看下效果
image.png
select count(*) as num from 表名 將count結(jié)果作為一個字段名檢索
$link = mysqli_connect("localhost","root","","mydb");
mysqli_set_charset($link,"utf8");
$sql = "select count(*) as num from menu";
$result=mysqli_query($link,$sql);
print_r( mysqli_fetch_all($result,MYSQLI_ASSOC));
mysqli_close($link);
?>
image.png
我們還可以通過分組 ground by 字段名 根據(jù)某個字段進行分組查詢
group by + 多字段列表:
表示根據(jù)后面的字段來分組,如果只有1個字段,那只是根據(jù)這個字段的值來進行一次分組就可以了;若后面有多個字段,那表示根據(jù)多字段的值來進行層次分組,分組層次從左到右,即先按第1個字段分組,然后在第1個字段值相同的記錄中,再根據(jù)第2個字段的值進行分組;接著第2個字段值相同的記錄中,再根據(jù)第3個字段的值進行分組......依次類推。
這樣分組后,顯然每條記錄(field1,field2,...)的數(shù)據(jù)都是唯一 。
注意:
1.where條件在group by前面
2.select 后面的所有列中,沒有使用聚合函數(shù)的列,必須出現(xiàn)在 group by 后面!
$link = mysqli_connect("localhost","root","","mydb");
mysqli_set_charset($link,"utf8");
$sql = "select * from student where city='上海' group by city";
$result=mysqli_query($link,$sql);
print_r( mysqli_fetch_all($result,MYSQLI_ASSOC));
mysqli_close($link);
?>
我們可以看到根據(jù)城市我們將城市為上海的成功分為一組
image.png
數(shù)據(jù)庫博大精深,待我們慢慢道來,且聽下回分解
總結(jié)
以上是生活随笔為你收集整理的php数据库录入和输出,PHP数据库之CURD操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3d智能电视产品有哪些值得推荐的3d智能
- 下一篇: 中小企业需要做运维管理吗小公司需要运维吗