PHP -- 資料庫訪問

來源:互聯網
上載者:User

標籤:

一、過時方法(PHP5以前的版本用的):用函數連結資料庫,相當於面向過程的方式

//設定頁面編碼格式

 header("content-type:text/html;charset=utf-8");

1)產生連結    

$db_connect = $mysql_connect("localhost","root","517")   // localhost:伺服器的地址; root:資料庫的使用者名稱;  517:資料庫密碼

2)選擇操作的資料庫

mysql_select_db("mydb",$db_connect);      // db: 代表資料庫,是datebase的簡寫 ;  $db_connect:表示用哪一個連結資料庫

3)寫sql語句

$sql = "select * from Info ";

4)執行sql語句

$result = mysql_query($sql);

5)處理查詢結果

$row = mysql_fetch_row($result);

備忘:如果輸出內容出現亂碼,可以在開始處加上 header("content-type:text/html;charset=utf-8");

 

二、物件導向的方式

1.產生連結化物件,需要四個參數

$db = new mysqli("localhost","root","517","mydb");  

//mysqli 是對mysql的擴充 // localhost:伺服器的地址; root:資料庫的使用者名稱;  517:資料庫密碼; mydb:要連結的資料庫

2.判斷是否串連成功

!mysqli_connect_error() or die("連結失敗");  //die相當於echo"連結失敗";  exit;  //exit表示退出整個程式

3.寫sql語句

$sql = "select * from Info ";

4.執行sql語句

$result = $db->query($sql);  //可以輸出一下$result看下它的類型,var_dump($result);輸出的是一個Object(對象).

5.操作結果集資料

1)

//$row = $result->fetch_row();   [ $result->fetch_row(); 每執行一次都會取出不同的一條資料 //fetch_row  表示取出一條資料  ]

//fetch_row();返回的是索引數組

while($row = $result->fetch_row())

{

   print_r($row);

  echo"<br / >";

}

2)或者

$attr = $resullt->fetch_all();  //返回$result結果集裡的所有資料,返回的是一個二維數組.

3)或者

$result->fetch_assoc();  //返回一條資料,返回的是關聯陣列

 

》》練習的代碼(通過連結資料庫查出資料,做成表格)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>無標題文檔</title></head><body><?php     //造連結化物件    $db =new MySQLi("localhost","root","517","mydb");    //判斷是否出錯    !mysqli_connect_error() or die("串連失敗");    //寫sql語句    $sql = "select * from  Info";    //執行sql語句    $result = $db->query($sql);    //處理查詢資料並顯示    echo "<table width=‘100%‘ border=‘1‘ cellspacing=‘0‘ cellpadding=‘0‘>";        echo"<tr><td>代號</td><td>姓名</td><td>性別</td><td>民族</td><td>生日</td></tr>";    while($row = $result->fetch_row())    {        //處理性別(也可以用函數的方法處理)        $sex = $row[2]?"男":"女";        //處理民族        $name = ShowNation($db,$row[3]);        echo"<tr><td>{$row[0]}</td><td>{$row[1]}</td><td>{$sex}</td><td>{$name}</td><td>{$row[4]}</td></tr>";    }    echo"</table>";        //做函數處理民族,函數的功能是傳入一個代號返回一個名稱    function ShowNation($db,$code)    {        //寫sql語句        $sql = "select Name from Nation where Code=‘{$code}‘";        //執行sql語句        $result =$db->query($sql);        $jieguo = $result->fetch_row();        return $jieguo[0];    } ?></body></html>

》》查詢資料庫,用php實現下拉式清單

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>無標題文檔</title></head><body><select><?php    //造連結化物件    $db =new MySQLi("localhost","root","517","mydb");    //判斷是否出錯    !mysqli_connect_error() or die("串連失敗");    //寫sql語句    $sql = "select * from  Nation";    //執行sql語句    $result = $db->query($sql);    //處理資料並顯示    $attr = $result->fetch_all();  //返回的二維資料        //遍曆二維數組顯示出來    for($i=0;$i<count($attr);$i++)    {                list($code,$name) = $attr[$i];        echo"<option value=‘{$code}‘>{$name}</option>";    }?></select></body></html>

 

備忘:每個資料庫都有一個使用者名稱,SqlServer裡面的超級管理員叫做SA(Super Administrator的簡寫),指擁有資料庫管理最高許可權的使用者;mysql的超級管理員是root。

執行的sql語句,如果是增刪改語句,執行之後返回的結果是true或者false.

快速鍵:選中需要移動的代碼,按Tab鍵可以向右移動,shift+Tab:可以向左移動

PHP -- 資料庫訪問

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.