php mysqli操作數據庫


鏈接數據庫

在php5.3版本之后,想要連接數據庫有兩種方案,一種是通過mysqli,另外外一種是通過pdo

本文主要說的是如果通過mysqli面向對象的寫法操作數據庫。

 

在連接數據庫之前,需要先通過變量存儲好數據庫的基本連接信息。

$servername = "localhost"; // 地址
$username = "root"; // 用戶名
$password = ""; // 密碼

實例化對象,並傳入先關參數

$link = new mysqli($servername,$username,$password);

判斷鏈接是否成功

// 檢測連接是否成功
if($link->connect_error){     //如果沒有錯誤,會返回一個NULL
    die("連接失敗,錯誤:" . $link->connect_error);   //打印錯誤信息
}

鏈接之后,斷開連接關閉數據庫

$link->close();

完整demo:

<?php 
// php 連接Mysql
// 通過mysqli  

// 采用面向對象的寫法來完成數據庫的連接
// 設置基礎數據庫信息

$servername = "localhost";
$username = "root";
$password = "";

// 創建連接
$link= new mysqli($servername,$username,$password);

// 檢測連接是否成功
if($link->connect_error){
    die("連接失敗,錯誤:" . $link->connect_error);
}

// 否則連接成功
echo "連接成功!";
// 連接之后,還需要將連接關閉
$link->close();
 ?>
View Code

通過mysqli創建數據庫

通過mysqli創建數據庫,首先我們需要保證數據庫的成功連接。

$servername = "localhost";
$username = "root";
$password = "";

// 創建連接
$link= new mysqli($servername,$username,$password);  
  
//檢測是否成功
if($link->connect_error){
    die("連接失敗,錯誤:" . $link->connect_error);
}

接下來通過變量保存好sql語句。

// 設置sql語句
$sql = "create database stu_01  default character set = 'utf8' ";

檢測數據庫是否創建成功

// 發送sql語句 並且驗證是否創建成功
if($link->query($sql) === TRUE){
    echo "數據庫創建成功.";
}else {
    echo "數據庫創建失敗 ,錯誤信息為:" . $link->error; // 如果失敗輸出錯誤信息
}

斷開連接,關閉數據庫

// 關閉數據庫
$conn->close();

添加數據庫完整demo

<?php 

$servername = "localhost";
$username = "root";
$password = "";

// 創建連接
$link= new mysqli($servername,$username,$password);    
if($link->connect_error){
    die("連接失敗,錯誤:" . $link->connect_error);
}

// 設置sql語句
$sql = "create database stu_01  default character set = 'utf8' ";

// 發送sql語句 並且驗證是否創建成功
if($link->query($sql) === TRUE){
    echo "數據庫創建成功.";
}else {
    echo "數據庫創建失敗 ,錯誤信息為:" . $link->error; // 如果失敗輸出錯誤信息
}

// 關閉數據庫
$conn->close();
?>
View Code

通過mysqli 創建數據表

通過mysqli創建數據表,首先我們先來完成基本的數據庫連接操作,

需要注意的是,因為我們是在數據庫中創建一個數據表,所以需要在額外的配置一下數據庫的信息:

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_01"; // 要操作的數據庫名

// 創建連接 
$link= new mysqli($servername,$username,$password,$dbname); // 注意第四個參數
if($link->connect_error){
    die("連接失敗,錯誤:" . $link->connect_error);
}

設定創建數據表的sql語句

create table stu_info(
    id int(6) unsigned auto_increment primary key,
    firstname varchar(30) not null,
    lastname varchar(30) not null,
    email varchar(50),
    reg_date timestamp
    )


/*
NOT NULL        - 每一行都必須含有值(不能為空),null 值是不允許的。
DEFAULT value   - 設置默認值
UNSIGNED        - 使用無符號數值類型,0 及正數
AUTO INCREMENT  - 設置 MySQL 字段的值在新增記錄時每次自動增長 1
PRIMARY KEY     - 設置數據表中每條記錄的唯一標識。 
           通常列的 PRIMARY KEY 設置為 ID 數值,與 AUTO_INCREMENT 一起使用。

注意:每個表都應該有一個主鍵(本列為 "id" 列),主鍵必須包含唯一的值。
*/

通過mysqli向數據表中插入信息

首先,連接數據庫

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_01";
// 創建連接
$conn = new mysqli($servername,$username,$password,$dbname);    
if($conn->connect_error){
    die("連接失敗,錯誤:" . $conn->connect_error);
}

 

接下來設置sql語句:

// 設置插入數據的sql語句 
$sql = "insert into stu_info(firstname,lastname,email) values('張三','張小三','zhangsan@qq.com')";

發送sql語句

// 發送sql 語句 
if($conn->query($sql) === TRUE){
    echo "新記錄添加成功!";
}else {
    echo "新記錄添加失敗,錯誤信息:" . $conn->error;
}

// 關閉連接
$conn->close();

通過mysqli刪除數據

 

<?php


// 數據庫連接基本信息
header("Content-type:text/html;Charset=utf8");

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_02";

$conn = new mysqli($servername,$username,$password,$dbname);

mysqli_set_charset($conn,'utf8'); // 解決亂碼問題
// 檢查鏈接
if ($conn->connect_error) {
    die("連接失敗: " . $conn->connect_error);
} 


// 設置sql
$sql = "delete from stu_info where lastname = '李小思';";

// 發送sql 
if($conn->query($sql) === TRUE) {
    echo "刪除成功";
}else {
    echo "刪除失敗,錯誤信息為:" . $conn->connect_error;
}

$conn->close();

通過mysqli 更改數據

<?php

// 數據庫連接基本信息
header("Content-type:text/html;Charset=utf8");

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "stu_02";

$conn = new mysqli($servername,$username,$password,$dbname);

mysqli_set_charset($conn,'utf8'); // 解決亂碼問題
// 檢查鏈接
if ($conn->connect_error) {
    die("連接失敗: " . $conn->connect_error);
}

// 設置sql語句 
$sql = "update stu_info set firstname='張小三' where id = 3";

// 發送sql語句 
if($conn->query($sql) === TRUE) {
    echo "修改成功";
}else {
    echo "修改失敗,錯誤信息:" . $conn->connect_error;
}

// 關閉
$conn->close();

 

通過mysqli 查找數據

<?php

    // 1.登錄mysql,選擇數據庫
    $link = @new mysqli("localhost:3306","root","root","test1908");
    if($link->connect_error){
        echo $link->connect_error;
    }

    // 2.$link->query()向mysql發送命令
    
    // 查
    $q = "SELECT * FROM stu";
    $res = $link->query($q);
    if($res){
        // 每次執行只能解析一條數據
        // 1.解析出了關聯數組和索引數組的集合
        // while($arr = $res->fetch_array()){
        //     print_r($arr);
        //     echo "<br>";
        // }

        // 2.解析出了索引數組
        // while($arr = $res->fetch_row()){
        //     print_r($arr);
        //     echo "<br>";
        // }

        // 3.解析出了關聯數組       √
        while($arr = $res->fetch_assoc()){
            print_r($arr);
            // echo json_encode($arr);
            echo $arr["sex"];
            echo "<br>";
        }

        // 4.解析出了對象
        // while($obj = $res->fetch_object()){
        //     print_r($obj);
        //     echo $obj->name;
        //     echo "<br>";
        // }
        
        // echo $arr["age"]
    }else{
        echo "select no ok";
    }

    // 斷開mysql之間的連接
    $link->close();
?>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM