數據訪問與全局變量
阿新 • • 發佈:2018-02-17
分享圖片 是否 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}";
數據訪問與全局變量