1. 程式人生 > >數據訪問與全局變量

數據訪問與全局變量

分享圖片 是否 sso lec 執行 arr 對象 是不是 方式

數據訪問

方式:函數方式(過時);面向對象方式(常用);PDO方式(數據訪問抽象層)(常用)

面向對象方式

//創建連接對象
變量 = new MySQLi("IP地址","數據庫用戶名","數據庫密碼","哪個數據庫")
$db = new MySQLi("localhost","root","123","mydb")
//判斷當前連接是否正確
if(mysqli_connect_error()){      //沒有錯誤為空或false
     echo "連接失敗";
     exit;
}
//寫一個sql語句
$sql = "select * from info";
//執行sql語句,如果成功返回一個結果集對象
$result = $db->query($sql); //失敗是返回false,執行select,show,describe,explain查詢會返回一個mysqli_result對象,其它查詢返回true //讀取查詢結果 if($result){ //判斷結果是不是false //1.從結果集對象裏面讀取所有數據,返回二維數組 $arr = $result->fetch_all(); //作為一個數組返回 //2..從結果集對象裏面讀取數據,每次讀一條,返回一維數組(索引關聯都有) $arr = $result->fetch_array();
//3.從結果集對象裏面讀取數據,每次讀一條,返回一維數組(關聯) $arr = $result->fetch_assoc(); //4.從結果集對象裏面讀取數據,每次讀一條,返回一個對象 $arr = result->fetch_object(); //5..從結果集對象裏面讀取數據,每次讀一條,返回一維數組(索引) $arr = result->fetch_row() while($arr = result->fetch_row()){ //當作fetch_all使用 var_dump($arr); } //需要哪一種就調用哪一個
}

示例

//刪除示例
$db = new MySQLi("localhost","root","123","mydb");
mysqli_connect_error()?die("連接失敗!"):"";   //使用三目運算符
$sql = "delete from nation where code=‘n006‘";
if($db->query($sql)){
    echo "刪除成功!";
}else{
    echo "刪除失敗!";
}

<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代號</td>
        <td>名稱</td>
        <td>性別</td>
        <td>民族</td>
        <td>生日</td>
    </tr>
    
    <?php  
    $db = new MySQLi("localhost","root","123","mydb");
    $sql = "select * from info";
    $result = $db->query($sql);
    if($result){
        $arr = $result->fetch_all();
        foreach($arr as $v){    //foreach遍歷顯示
            echo "<tr>
        <td>{$v[0]}</td>
        <td>{$v[1]}</td>
        <td>{$v[2]}</td>
        <td>{$v[3]}</td>
        <td>{$v[4]}</td>
    </tr>";
        }
    }
    ?>
    
    
</table>

全局變量

$name = "張三";
function test (){
    $name = "李四";   //屬於局部變量,作用域只在大括號裏面,出了大括號就相當於訪問不到
}
test();
echo "姓名為{$name}";

技術分享圖片

解決方案

兩種方法任意一種

關鍵字global(把外層的一個變量當作全局變量拿到函數體中使用)

$name = "張三";
function test ($name){    //方法一可以把name傳進去
    global $name;    //方法二把外層的name當作全局變量拿到函數裏面來使用
    $name = "李四"; 
}
test();
echo "{$name}";

技術分享圖片

數據訪問與全局變量