PHP數據庫操作

一、操作數據庫的步驟

我們對數據庫的操作主要分為五步:
連接數據庫、選擇數據庫、設置編碼方式、操作數據庫、關閉數據庫。

二、連接數據庫

連接數據庫的方法是調用mysql_connect()函數,它需要我們提供三個參數,服務器的主機名,用戶名和密碼。如果服務器和php運行在同一臺計算機上,可以使用localhost作為主機名。

// 1、連接數據庫  服務器主機名,用戶名,密碼
$db = mysql_connect("localhost","root","");

三、選擇數據庫

與數據庫進行連接之后,就可以使用各種mysql_xxx()函數對數據庫進行操作,但是為了每次調用mysql_xxx()函數都要指定目標數據庫,一般我們會先用mysql_select_db()函數選定一個默認數據庫,其參數為數據庫名稱。

//選擇數據庫
mysql_select_db("mydataDB")

四、設置編碼方式

由于我們的程序中有時會需要顯示漢字,為了防止漢字亂碼,我們就要先設置編碼方式為SET NAMES UTF8,并用mysql_query()函數來執行者個指令。


    //  設置編碼方式
    mysql_query("SET NAMES UTF8");

  • mysql_query() 函數可以用來執行任何一種SQL命令,比如SELECT(查詢)、INSERT(插入新紀錄)、UPDATE(修改現有記錄)、DELETE(刪除現有記錄)、CREATE TABLE(創建新數據表)、ALTER TABLE(修改數據表結構)等。

五、操作數據

1、查詢數據表,使后面的所有操作都針對當前數據表執行。

    // 創建sql語句,并檢測是否正確
    $sql = "SELECT * FROM users";
    $res = mysql_query($sql);

2、mysql_fetch_row()函數將以普通數組的形式返回數據庫中的一條數據,它的各個字段需要以$row[n]的方式進行訪問。

    $row = mysql_fetch_row($res); // 返回普通數組
    var_dump($row);
代碼執行效果

var_dump()方法是判斷一個變量的類型與長度,并輸出變量的數值,如果變量有值輸的是變量的值并回返數據類型.

    $row = mysql_fetch_row($res);
    var_dump($row);
    echo "<hr/>";
    print_r($row);
>```

![var_dump和print_r的區別](http://upload-images.jianshu.io/upload_images/1986486-438b0f29657462fa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

// 遍歷獲取username的值
while ($row = mysql_fetch_row($res)) {
    echo $row["1"]."<hr/>";
};

![代碼執行效果](http://upload-images.jianshu.io/upload_images/1986486-0e907292668e4e4b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

3、mysql_fetch_array()函數將以關聯數組的形式返回數據庫中的一條數據,它的各個字段需要以$row[n]或$row["colname"]的方式進行訪問。

$row = mysql_fetch_array($res);
print_r($row);

echo "<hr/>";

echo $row[1];
//echo $row["username"];

![代碼執行效果](http://upload-images.jianshu.io/upload_images/1986486-6d84849efb618d59.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

4、mysql_fetch_accoc()函數也以關聯數組的形式返回數據庫中的一條數據,它的各個字段只能以$row["colname"]的方式進行訪問。

$row = mysql_fetch_assoc($res);
print_r($row);
echo "


";
echo $row["username"];


![代碼執行效果](http://upload-images.jianshu.io/upload_images/1986486-d9710d7bca910ca3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

5、mysql_fetch_object()函數以一個對象的方式返回數據庫中的一條數據,它的各個字段需要以$row->colname的方式進行訪問。

$row = mysql_fetch_object($res);
var_dump($row);
echo "<hr/>";
echo $row->username; //取出對象的屬性
![代碼執行效果](http://upload-images.jianshu.io/upload_images/1986486-fdb91f0a787c03d7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

6、mysql_num_rows()函數用于獲取查詢返回的記錄數。

// 獲取查詢記錄的數量
$count = mysql_num_rows($res);
echo "<h1>$count</h1>";


![代碼執行效果](http://upload-images.jianshu.io/upload_images/1986486-f1ce6613ae4877d9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
7、mysql_insert_id() 函數用于獲取INSERT(插入)操作產生的ID。

8、mysql_affected_rows()函數用于獲取前一次對數據庫操作所影響的記錄數。

// 獲取由于insert而產生的id
$id = mysql_insert_id($db);
echo $id;
echo "<hr/>";

// 獲取影響的行數
$rows = mysql_affected_rows($db);
echo $rows;

![代碼執行效果](http://upload-images.jianshu.io/upload_images/1986486-aed5f777dc39461e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

9、mysql_free_result()函數釋放查詢結果。

// 釋放查詢結果
mysql_free_result($res);


#五、關閉數據庫

調用mysql_close()函數可關閉數據庫,參數為我們指定的數據庫,如果不寫參數,則默認為最近打開的數據庫。

// 打開數據庫
$db = mysql_connect("localhost","root","");

// 關閉數據庫
mysql_close($db);

***
以上內容純屬個人理解,由于本人水平有限,若有錯漏之處敬請之處改正,謝謝!
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • PHP支持哪些數據庫 PHP通過安裝相應的擴展來實現數據庫操作,現代應用程序的設計離不開數據庫的應用,當前主流的數...
    雪碧spirit閱讀 949評論 1 5
  • PHP支持哪些數據庫 PHP通過安裝相應的擴展來實現數據庫操作,現代應用程序的設計離不開數據庫的應用,當前主流的數...
    敬業福閱讀 2,107評論 0 1
  • 1.MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬于 Oracle 旗下產品。My...
    黃花菜已涼閱讀 4,600評論 3 60
  • 需要原文的可以留下郵箱我給你發,這里的文章少了很多圖,懶得網上粘啦 1數據庫基礎 1.1數據庫定義 1)數據庫(D...
    極簡純粹_閱讀 7,500評論 0 46
  • MySQL 數據庫常用命令 1、MySQL常用命令 create database name; 創建數據庫 use...
    55lover閱讀 4,829評論 1 57