php連接MySQL數據庫進行增刪改查

前言

閱讀本文建議在學習完 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的路上,如果你覺得本文對你有所幫助的話,那就請關注點贊評論三連吧,謝謝,你的肯定是我寫博的另一個支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章