本篇文章給大家帶來了關于PHP怎樣利用mysql實現增刪改查功能的實例,希望對大家有幫助。
PHP+Mysql實現增刪改查
PHP 是一種創建動態交互性站點的強有力的服務器端腳本語言。
數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。每個數據庫都有一個或多個不同的 API 用于創建,訪問,管理,搜索和復制所保存的數據。
MySQL 是一種在 Web 上使用,在服務器上運行的數據庫系統;MySQL 是非常快速,可靠,且易于使用的,支持標準的 SQL。
Mysql語句
打開我們的wampserver服務器+Mysql可視化工具(這里我用Navicat),或則其它集成工具(Apache+PHP+Mysql)都可以。鏈接上我們的服務器
我們新建查詢來操作數據庫,先把基本的文件配置好
插入一條信息
INSERT INTO 語法
- 需指定要插入數據的列名,只需提供被插入的值即可
INSERT INTO table_name VALUES (value1,value2,value3,...);
- 需要指定列名及被插入的值
INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
不指定列名向表格插入一條數據
INSERT INTO stu VALUES (null,'提莫', 1,30);
我們用第二種語法向表格插入一條數據
INSERT INTO stu (name, gender, age) VALUES ('Faker', 0,24);
查詢語句
SQL SELECT 語句
SELECT column_name,column_name FROM table_name;
SELECT * FROM table_name;
查詢id一列
select id from stu;
查詢當id為1的語句
select * from stu where id = 1;
因為id是唯一的,所以找到了該條數據則不用再繼續
select * from stu where id = 1 limit 1;
修改語句
SQL UPDATE 語句 需要加上where語句,否則整個表格都會更新
UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
修改名字當id為1的時候
update stu set name='the shy' where id=1;
刪除語句
SQL DELETE 語法 WHERE 子句規定哪條記錄或者哪些記錄需要刪除。如果您省略了 WHERE 子句,所有的記錄都將被刪除!
DELETE FROM table_name WHERE some_column=some_value;
刪除id為2的該條學生信息
delete from stu where id = 2;
使用PHP操作Mysql
如何鏈接數據庫
header("Content-Type:text/html;charset=utf-8");// 1. 使用mysqli鏈接數據庫(這里使用wampserver默認的)$connection = mysqli_connect('127.0.0.1', 'root', '', 'students');// 2. 解決識別不了數據庫文件的中文mysqli_query($connection,"set names 'utf8';");if (!$connection) { // 連接數據庫失敗 exit('<h1>連接數據庫失敗</h1>');}// 每次只能查詢一條數據$query = mysqli_query($connection, 'select * from stu;');// 查詢所有的數據while ($row = mysqli_fetch_assoc($query)) { var_dump($row);}
查詢數據庫渲染主頁面(index.php)
- 采用混編的方法,在頭部鏈接數據庫
<?php// 1.鏈接我們的數據庫$link = mysqli_connect('127.0.0.1', 'root', '', 'students');// 2.設置中文編碼mysqli_query($link,"set names 'utf8';");// 3.檢測鏈接if ($link->connect_error) { die("連接失敗: " . $link->connect_error);}// 4.查詢數據$query = mysqli_query($link, 'select * from stu;');// 5.渲染數據?>
- 引入bootstrap@4(bootstrap官網下載并引入bootstrap.css)
<link rel="stylesheet" href="./lib/bootstrap.css">
- 使用
mysqli_fetch_assoc($query)
渲染數據,因為后續需要添加(add.php),刪除(del.php),修改(edit)操作所以這里先添加
<p class="container"> <h1 class="text-center">首頁</h1> <table class="table table-bordered"> <thead> <tr> <th class="text-center">學號</th> <th class="text-center">姓名</th> <th class="text-center">性別</th> <th class="text-center">年齡</th> <th class="text-center">操作</th> </tr> </thead> <tbody> <?php while ($row = mysqli_fetch_assoc($query)): ?> <tr class="text-center"> <td><?php echo $row['id']; ?></td> <td><?php echo $row['name']; ?></td> <td><?php echo $row['gender']==1?'♀' : '♂' ; ?></td> <td><?php echo $row['age']; ?></td> <td> <a href="del.php?id=<?php echo $row['id'];?>" class="btn btn-primary">刪除</a> <a href="edit_get.php?id=<?php echo $row['id'];?>" class="btn btn-danger">修改</a> </td> </tr> <?php endwhile;?> </tbody> </table> <a class="btn btn-primary btn-block" href="add.php">添加學生信息</a></p>
添加一條數據(add.php)
- 我們依舊使用混編的模式,表單數據提交到本頁面,使用
$_SERVER['PHP_SELF']
使得代碼魯棒性更強 - 使用post提交數據,記得在頁面提示信息錯誤
- 在頭部鏈接數據庫,插入一條數據
<?php// 1. 判斷是否是post提交// 2. 處理表單傳遞過來的數據(不能為空!empty;這里我就先不做處理了)// 3. 連接數據庫并插入一條數據// 4. 開始查詢(insert into)// 5. 判斷是否查詢成功// 6. 判斷是否插入成功`mysqli_affected_rows()`// 7. 重定向function add_user(){ $name = $_POST['name']; $age = $_POST['age']; $gender = $_POST['gender']; $link = mysqli_connect('127.0.0.1', 'root', '', 'students'); mysqli_query($link,"set names 'utf8';"); if(!link){ $GLOBALS['msg'] = '連接數據庫失敗'; return; } $query = mysqli_query($link,"INSERT INTO stu (name, gender, age) VALUES ('{$name}',{$gender},{$age});"); if (!$query) { $GLOBALS['msg'] = '查詢過程失敗'; return; } $affected = mysqli_affected_rows($link); if($affected!==1){ $GLOBALS['error_message'] = '添加數據失敗'; return; } header('Location:index.php');}if($_SERVER['REQUEST_METHOD']==='POST'){ add_user();}?>
- 界面
<p class="container add"> <h4 class="alert alert-primary text-center">添加學生信息</h4> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <p class="form-group row"> <label for="name" class="col-sm-2 col-form-label">姓名</label> <p class="col-sm-10"> <input type="text" class="form-control" name="name" id="name"> </p> </p> <p class="form-group row"> <label for="gender" class="col-sm-2 col-form-label">性別</label> <p class="col-sm-10"> <input type="text" class="form-control" id="gender" name="gender"> </p> </p> <p class="form-group row"> <label for="age" class="col-sm-2 col-form-label">年齡</label> <p class="col-sm-10"> <input type="text" class="form-control" id="age" name="age"> </p> </p> <!--這里添加提示--> <?php if(!empty($GLOBALS['msg'])): ?> <p class="alert alert-warning" role="alert"> <?php echo $GLOBALS['msg']; ?> </p> <?php endif ?> <button type="submit" class="btn btn-primary btn-block">保存</button> </form></p>
- 點擊添加學生信息,跳轉到add.php
刪除一條數據(del.php)
- 我們已經在主頁面已經寫好了,并傳入了id
- 我們根據傳入的id使用sql語句進行刪除即可
- 刪除完成重定向
<?php// 1. 接收傳遞過來的id if(empty($_GET['id'])){ exit('<h1>連接數據庫失敗</h1>'); } $id = $_GET['id'];// 2. 連接數據庫 $link = mysqli_connect('127.0.0.1', 'root', '', 'students'); mysqli_query($link,"set names 'utf8';");// 3. 刪除該條數據 $query = mysqli_query($link,"delete from stu where id = {$id}");// 4. 查詢失敗的處理 if (!$query) { exit('<h1>查詢數據失敗</h1>'); }// 5. 受影響的行數 $affected_rows = mysqli_affected_rows($link);// 6. 刪除失敗 if ($affected_rows <= 0) { exit('<h1>刪除失敗</h1>'); } header('Location: index.php');?>
修改操作
- 接收index.php傳過來的id,然后根據id查詢數據(id是唯一的)
- 將數據渲染到界面上
- 通過id鏈接數據庫查詢該條數據
if(empty($_GET['id'])){ exit('<h1>必須傳入指定參數</h1>'); return; } $id = $_GET['id']; $link = mysqli_connect('127.0.0.1', 'root', '', 'students'); mysqli_query($link,"set names 'utf8';"); if(!$link){ exit('<h1>連接數據庫失敗</h1>'); } $query = mysqli_query($link,"select * from stu where id = {$id} limit 1"); if(!$query){ exit('<h1>查詢數據失敗</h1>'); } $user = mysqli_fetch_assoc($query); if(!$user){ exit('<h1>找不到你要編輯的數據</h1>'); }
- 界面數據渲染
<p class="container edit"> <h4 class="alert alert-primary text-center">添加學生信息</h4> <form method="post" action="edit_post.php"> <p class="form-group row"> <label for="name" class="col-sm-2 col-form-label">id</label> <p class="col-sm-10"> <input type="text" class="form-control" name="id" id="name" value="<?php echo $user['id']; ?>"> </p> </p> <p class="form-group row"> <label for="name" class="col-sm-2 col-form-label">姓名</label> <p class="col-sm-10"> <input type="text" class="form-control" name="name" id="name" value="<?php echo $user['name']; ?>"> </p> </p> <p class="form-group row"> <label for="gender" class="col-sm-2 col-form-label">性別</label> <p class="col-sm-10"> <input type="text" class="form-control" id="gender" name="gender" value="<?php echo $user['gender']; ?>"> </p> </p> <p class="form-group row"> <label for="age" class="col-sm-2 col-form-label">年齡</label> <p class="col-sm-10"> <input type="text" class="form-control" id="age" name="age" value="<?php echo $user['age']; ?>"> </p> </p> <button type="submit" class="btn btn-primary btn-block">保存</button> </form></p>
- 結果(生產環境中id是要隱藏的)
- post提交數據,根據id修改數據
<?phpvar_dump($_POST);$id = $_POST["id"];$name = $_POST['name'];$age = $_POST['age'];$gender = $_POST['gender'];$link = mysqli_connect('127.0.0.1', 'root', '', 'students');mysqli_query($link,"set names 'utf8';");if(!$link){ exit('<h1>連接數據庫失敗</h1>');}//$query = mysqli_query($link,"update stu set name={$name},age={$age},gender={$gender} where id = {$id};");var_dump("UPDATE stu SET gender={$gender},age={$age},name='{$name}' WHERE id={$id}");$query = mysqli_query($link,"UPDATE stu SET gender={$gender},age={$age},name='{$name}' WHERE id={$id}");if (!$query) { exit('<h1>查詢數據失敗</h1>');}$affected = mysqli_affected_rows($link);if($affected!==1){ exit('<h1>找不到你要編輯的數據</h1>');}header('Location:index.php');?>
大家如果感興趣的話,可以點擊《PHP視頻教程》進行