1.可視化工具
① PHPmyadmin
在Xampp環境下的訪問地址:
http://127.0.0.1(:埠號)/phpmyadmin 或者
http://localhost(:埠號)/phpmyadmin 埠號為“80”時可不加埠號,
② Navicat for MySQL
需要單獨下載安裝,
說明:
這兩個工具都僅是對資料庫進行操作和管理的工具,并不是資料庫,
③ PHPmyadmin登錄報錯

安裝的“XAMPP Control Panel v3.2.4”默認的 MySQL Port是3396,
在“Config->my.ini”組態檔中將所有的“3396”埠號替換為“3306”后,重啟MySQL,打開phpmyadmin連接成功!
2.PHP中資料庫操作
① PHP創建資料庫(連接)
語法:(Object)mysqli_connect("域名","DB賬號","DB密碼","DB庫名");
示例:$DBcnt = mysqli_connect('localhost','admin','111','DBtest');
② 向DB中插入資料時包含中文出現亂碼的解決方案
語法:mysqli_query($DBcnt,'set names utf8');
說明:設定成功會回傳1,根據實際情況并不一定必須保存回傳結果,
③ 設定 client端和 server端保持字符編碼一致
語法:mysqli_query($DBcnt,"set character_set_client=utf8");
mysqli_query($DBcnt,"set character_set_results=utf8");
④ 執行SQL陳述句
語法:$結果 = $DB連接->query(SQL陳述句);
示例:var_dump($result=$DBcnt->query($sql));
3.PHP操作SQL陳述句
⑴ PHP中使用SQL陳述句的基礎模板(適用于初學理解)
① 建立資料庫連接
② 判斷是否連接成功
③ 設定編碼
④ 創建SQL陳述句
⑤ 執行SQL陳述句,并獲取結果
⑥ 判斷結果條數
⑦ 拼湊結果
⑧ json格式回傳
代碼示例:
<?php
$dataCon = mysqli_connect('localhost','root','','dbtest'); //① 建立資料庫連接
if($dataCon){ //② 判斷是否連接成功
mysqli_query($dataCon,'set names utf8');
mysqli_query($dataCon,'set character_set_client=utf8');
mysqli_query($dataCon,'set character_set_results=utf8'); //③ 設定編碼格式
$sqlCode = '需要執行的SQL陳述句'; //④ 創建SQL陳述句
$result = $dataCon -> query($sqlCode); //⑤ 執行SQL陳述句,并獲取結果
print_r($result);
if($result -> num_rows>0){ //⑥ 判斷結果條數,使用“num_rows”屬性,表示表資料的行數
$resContent=[];
for($i=0;$row=$result -> fetch_assoc();$i++){ //“fetch_assoc()”方法用于獲取物件中的每一條資料
$resContent[$i] = $row; //⑦ 拼湊結果
}
print_r($resContent);
echo json_encode($resContent); //⑧ json格式回傳
}
}else{
echo '資料庫連接失敗!';
}
?>
⑵ SQL查詢陳述句
在資料庫的指定表內根據條件查詢指定內容
語法:$sql = "select [欄位內容] from [表名] where [查詢條件]";
說明:
欄位內容可以使用“ * ”代替,表示所有欄位資訊;也可以指定具體欄位,多個欄位用“,”隔開,
插敘條件可以直接寫“1”,表示無條件;也可以寫具體條件,多個條件使用“and”或“or”連接,
⑶ SQL插入陳述句
語法:$sql = "insert into [表名](field1,field2,...) values('value1,value2,...)";
$sql = "insert into [表名] values('value1,value2,...)"; //不定義欄位條件時表示添加所有欄位!
⑷ SQL修改陳述句
語法:$sql = "update [表名] set field1='value1,... where id=$id...";
注意:where后面的條件可以和修改的內容相同,
⑸ SQL洗掉陳述句
語法:$sql = "delete from [表名] where 條件";
說明:根據指定的條件洗掉對應的資料,
代碼示例:
<?php
echo '<pre>';
$dataCon = mysqli_connect('localhost','root','','dbtest');
if($dataCon){
mysqli_query($dataCon,'set names utf8');
mysqli_query($dataCon,'set character_set_client=utf8');
mysqli_query($dataCon,'set character_set_results=utf8');
$sqlCode1 = 'select * from namelist where 1'; //查詢資料庫表資料
$sqlCode2 = "insert into namelist(姓名,sex,age) values('Kandy','girl',20)"; //新增資料庫表資料,指定欄位
$sqlCode3 = "insert into namelist values('Joe','boy',21)"; //新增資料庫表資料,全欄位
$sqlCode4 = "update namelist set 姓名='George',age=22 where 姓名='joe'"; //修改資料庫表資料
$sqlCode5 = "delete from namelist where 姓名='joney'"; //洗掉資料庫表資料
$result = $dataCon -> query($sqlCode5);
var_dump($result);
}else{
echo '資料庫連接失敗!';
}
?>
4.用戶登錄注冊案例
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
<script src="https://www.cnblogs.com/husa/p/JScodeFile/jquery-1.8.3.js"></script>
</head>
<body>
<span>Name:</span><input type="text" ><br>
<span>Code:</span><input type="password" >
<br>
<br>
<button>用戶登錄</button>
<button>用戶注冊</button>
<script>
var $btns = $('button');
$btns.eq(0).click(function () {
$.ajax({
type:'post',
url:'20210106Login.php',
data:{
myName:$('.userName').val(),
myCode:$('.userCode').val()
},
dataType:'json',
success:function (fBack) {
console.log(fBack);
if (fBack.result==1){
alert('登錄成功!')
}else if (fBack.result==0){
alert('用戶不存在!')
}else if (fBack.result==2){
alert('登錄密碼錯誤!')
}else{
alert('網路連接失敗!')
}
},
})
});
$btns.eq(1).click(function () {
$.ajax({
type:'post',
url:'20210108Register.php',
data:{
newName:$('.userName').val(),
newCode:$('.userCode').val()
},
dataType:'json',
success:function (fBack) {
console.log(fBack);
if (fBack.result==4){
alert('用戶名已存在,請修改用戶名!')
}else if (fBack.result==5){
alert('用戶注冊成功!您的用戶名是:'+$('.userName').val()+'密碼是:'+$('.userCode').val())
}else{
alert('網路連接失敗!')
}
},
})
});
</script>
</body>
</html>
<?php
// 接受前臺發送的資料
$userName = $_POST['myName'];
$userCode = $_POST['myCode'];
// 定義需要回傳給前臺的資料物件
$fBack = array();
// 連接資料庫,并定義資料庫物件
$dataCon = mysqli_connect('localhost','root','','dbtest');
// 設定資料庫輔助資訊(編碼格式)
mysqli_query($dataCon,'set names utf8');
mysqli_query($dataCon,'set character_set_client=utf8');
mysqli_query($dataCon,'set character_set_results=utf8');
// 用戶登錄邏輯
if($dataCon){
// 查詢資料庫表資料
$sqlCode = 'select * from namelist where 1';
// 執行SQL陳述句,定義SQL結果物件
$result = $dataCon -> query($sqlCode);
// 判斷查詢結果是否存在
if($result->num_rows>0){
// 資料結果存在,則將SQL結果物件決議為陣列形式
$resContent=[];
for($i=0;$row=$result->fetch_assoc();$i++){
$resContent[$i] = $row;
}
$fBack['resArr'] = $resContent;
$fBack['resLen'] = count ($resContent);
// 判斷用戶名是否存在,使用“count()”方法判斷陣列長度
for($j=0;$j<count($resContent);$j++){
if($resContent[$j]['name']==$userName){
// 如果用戶存在,則判斷登錄密碼是否正確
if($resContent[$j]['password']==$userCode){
$fBack['result'] = 1;
break;
}else{
$fBack['result'] = 2;
}
}else{
$fBack['result'] = 0;
}
}
}
}else{
$fBack['result'] = 3;
}
echo json_encode($fBack);
?>
<?php
$newName = $_POST['newName'];
$newCode = $_POST['newCode'];
// 連接資料庫,并定義資料庫物件
$dataCon = mysqli_connect('localhost','root','','dbtest');
// 設定資料庫輔助資訊(編碼格式)
mysqli_query($dataCon,'set names utf8');
mysqli_query($dataCon,'set character_set_client=utf8');
mysqli_query($dataCon,'set character_set_results=utf8');
// 用戶注冊邏輯
$fBack = array();
if($dataCon){
// 查詢資料庫表資料
$sqlCode1 = 'select * from namelist where 1';
// 執行SQL陳述句,定義SQL結果物件
$result = $dataCon -> query($sqlCode1);
// 判斷查詢結果是否存在
if($result->num_rows>=0){
// 資料結果存在,則將SQL結果物件決議為陣列形式
$resContent=[];
for($i=0;$row=$result->fetch_assoc();$i++){
$resContent[$i] = $row;
}
$fBack['resArr'] = $resContent;
$fBack['resLen'] = count ($resContent);
// 判斷用戶名是否存在,使用“count()”方法判斷陣列長度
for($j=0;$j<count($resContent);$j++){
if($resContent[$j]['name']==$newName){
// 如果用戶存在,則回傳提示資訊
$fBack['result'] = 4;
break;
}else{
$sqlCode2 = "insert into namelist(name,password) values($newName,$newCode)";
$register = $dataCon->query($sqlCode2);
$fBack['result'] = 5;
$j = count($resContent)-1; //用于避免回圈多次新增用戶!
$fBack['j'] = $j;
}
}
}
}else{
$fBack['result'] = 3;
}
echo json_encode($fBack);
?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/247057.html
標籤:PHP
上一篇:PHP中的強制型別轉換
