前言
閱讀本文建議在學習完 PHP基礎(點我開始學習) 和 MySQL基礎(點我開始學習)
一、數據備份與還原
數據庫中的數據需要定期備份
1.1 數據備份
利用mysqldump工具,語法:
mysqldump 數據庫連接 > 數據備份地址
例題:將studentinfo數據庫中所有的表導出到data.sql中:
例題:只想導出bank表:
我們將data.sql拖到vscode中,查看:
1.2 數據還原
導出帶有創建數據庫語法的數據
方法一:
創建新的數據庫,將備份的數據導入:
方法二:
二、連接數據庫
2.1 開啓mysqli擴展
在php.ini中開啓mysqli擴展
extension==php_mysqli.dll
開啓擴展後重啓服務器,就可以使用mysqli_函數了。
2.2 連接數據庫
1、創建一個data數據庫:
然後在queires下編寫sql語句
2、創建news表並插入數據:
drop table if exists news;
create table news (
id int UNSIGNED auto_increment PRIMARY KEY comment '主鍵',
title VARCHAR(20) not null comment '標題',
content text not null comment '內容',
createtime int not null comment '添加時間'
) engine=innodb charset=gbk comment '新聞表';
-- 插入測試數據
insert into news values (null, 'counter', 'php、mysql、vue、react', UNIX_TIMESTAMP());
insert into news values (null, 'jack', 'java、mysql、vue、react', UNIX_TIMESTAMP());
3、連接數據庫
mysqli_connect(主機IP, 用戶名, 密碼, 數據庫名, 端口號) // 如果端口號是3306可以省略
mysqli_connect_error() // 獲取連接數據庫的錯誤信息
mysqli_connect_errno() // 獲取連接數據庫的錯誤編碼
mysqli_set_charset() //連接對象,字符編碼
測試:
mysqli_connect(主機IP, 用戶名, 密碼, 數據庫名, 端口號)
mysqli_connect_error() // 獲取連接數據庫的錯誤信息
mysqli_connect_errno() // 獲取連接數據庫的錯誤編碼
mysqli_set_charset(連接對象, 字符編碼) //連接對象,字符編碼
<?php
$link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306');
// var_dump($link);
// echo mysqli_connect_error();
if (mysqli_connect_error()) {
echo '錯誤號'.mysqli_connect_errno(),'<br/>';
echo '錯誤信息: '.mysqli_connect_error();
exit;
}
mysqli_set_charset($link, 'gbk');
?>
三、操作數據
3.1 數據操作語句
用到的函數:
mysqli_query() // 執行SQL語句
mysqli_insert_id() // 獲取插入記錄自動增長的id
mysqli_affected_rows() // 獲取受影響的記錄數
mysqli_error() // 獲取執行SQL語句的錯誤信息
mysqli_errono() // 獲取執行SQL語句的錯誤碼
增、刪、改語句執行成功返回true,失敗返回false。select、show、desc查詢成功會返回結果集。
例:
1、執行insert語句:
<?php
$link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306');
mysqli_set_charset($link, 'gbk');
$rs = mysqli_query($link, "insert into news values (null, 'jackson', 'dance,voince', unix_timestamp())");
var_dump($rs);
?>
成功後獲取自動增長的編號:
<?php
$link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306');
mysqli_set_charset($link, 'gbk');
$rs = mysqli_query($link, "insert into news values (null, 'jackson', 'dance,voince', unix_timestamp())");
// var_dump($rs);
if ($rs) {
echo '自動增長的編號是:'.mysqli_insert_id($link);
}
?>
2、執行update語句
現有數據如下:
語句:
<?php
$link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306');
mysqli_set_charset($link, 'gbk');
$rs = mysqli_query($link, "update news set title='kangkang' where id=4");
if ($rs) {
echo '受影響的記錄數是:'.mysqli_affected_rows($link);
}
else {
echo '錯誤碼:'.mysqli_errno($link),'<br/>';
echo '錯誤信息:'.mysqli_error($link);
}
?>
錯誤的情況,將id改爲ids肯定就沒有這個字段:
成功的情況:
3、執行deleta語句
<?php
$link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306');
mysqli_set_charset($link, 'gbk');
$rs = mysqli_query($link, "delete from news where id=5");
echo $rs;
?>
3.2 數據查詢語句
數據查詢用select、desc、show,成功會返回結果集,失敗返回false
例:
1、select查詢語句
<?php
$link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306') or die('連接錯誤信息:'.mysqli_connect_error());
mysqli_set_charset($link, 'utf8');
$rs=mysqli_query($link,'select * from news');
// 將一條記錄匹配成索引數組
$rows=mysqli_fetch_row($rs);
// 將對象中一條數據匹配成關聯數組
$gl=mysqli_fetch_assoc($rs);
// 將對象中一條數據匹配成既有關聯數組又有索引數組
$glsy=mysqli_fetch_array($rs);
print_r($rows);
echo '<br/>';
print_r($gl);
echo '<br/>';
print_r($glsy);
echo '<br/>';
// 總列數、總行數
echo '總行數'.mysqli_num_rows($rs), '<br/>';
echo '總列數'.mysqli_num_fields($rs), '<br/>';
?>
獲取所有數據:
<?php
$link = @mysqli_connect('localhost', 'root', '123456', 'data', '3306') or die('連接錯誤信息:'.mysqli_connect_error());
mysqli_set_charset($link, 'utf8');
$rs=mysqli_query($link,'select * from news');
// 獲取所有數據
$list=mysqli_fetch_all($rs);
echo '總數:';
echo '<pre/>';
print_r($list);
?>
銷燬結果集並關閉連接:
mysqli_free_result($rs);
mysqli_close($link);
使用的函數:
mysqli_fetch_assoc() // 將一條數組匹配關聯數組
mysqli_fetch_row() // 將一條記錄匹配成索引數組,每次查詢指針都將指向當前
mysqli_fetch_array() // 將一條記錄匹配成既有關聯數組又有索引數組
mysqli_fetch_all() // 匹配所有記錄
mysqli_num_rows() // 總行數
mysqli_num_fields() // 總記錄數
mysqli_free_result() // 銷燬結果集
mysqli_close() // 關閉連接
在學習的PHP和MySQL的路上,如果你覺得本文對你有所幫助的話,那就請關注點贊評論三連吧,謝謝,你的肯定是我寫博的另一個支持。