php連接和操作mysql數據庫超全詳解!!!

php連接mysql數據庫

PHP訪問MYSQL數據庫的五個步驟

1.連接MySQL數據庫

使用 mysql_connect()函數建立與MySQL服務器的連接。

2.選擇MySQL數據庫

使用 mysql_select_db()函數選擇MySQL數據庫服務器的數據庫。

3.執行 SQL 語句

在選擇數據庫中使用 mysql_query()函數執行 SQL語句,對數據的操作方式主要包括 5種方式,下面我們分別進行介紹。

  • 查詢數據:使用select 語句實現數據的查詢功能。

  • 顯示數據:使用select 語句顯示數據的查詢結果。

  • 插入數據:使用insert into 語句向數據庫中插入數據。

  • 更新數據:使用update 語句更新數據庫中的記錄。

  • 刪除數據:使用 delete語句刪除數據庫中的記錄!

4.關閉結果集

數據庫操作完成後,需要關閉結果集,以釋放系統資源,使用mysql_free_result($result);

5.關閉MySQL服務器

每使用一次 mysql_connect()或者mysql_query()函數,都會消耗系統資源,如果用戶連接超過一定數量時,就會造成系統性能下降,甚至是死機,爲了避免這種現象的發生,在完成數據庫的操作後,應該使用 mysql_close()函數關閉與MYSQL服務器的連接,以節省系統資源。

 

技巧:

如果在多個網頁中都要頻繁進行數據庫訪問,那麼可以建立與數據庫服務器的持續連接來提高效率,因爲每次與數據庫服務器的連接需要較長的時間和交大的資源開銷,持續的連接相對來說會更有效率,建立持續連接的方法就是在數據庫間接時,調用函數 mysql_pconnect()代替mysql_connect函數。建立的持續連接在本程序結束時,不需要調用 mysql_colse()來關閉與數據庫服務器的連接。下次程序在此執行 mysql_pconnect()函數時,系統自動直接返回已經建立的持續連接ID號,而不再去真的連接數據庫。

 

PHP 中與數據庫的連接是非持久連接,系統會自動回收,一般不用設置關閉,但是如果一次性訪問的結果集比較大,或者網站訪問量比較多,那麼最好使用 mysql_close()函數手動進行釋放。

 

使用mysql_connect()函數連接數據庫

//創建連接
$conn = new mysqli('localhost','root','123456','test');
//檢測連接
if($conn->connect_error){
    die('連接失敗:'.$conn->connect_error);
}

 

使用mysql_select_db()函數選擇數據庫文件

下面的實例使用了 mysql_select_db()函數連接數據庫,具體實例代碼如下:

$link = mysqli_connect('localhost','root','123456') or die('不能連接到數據庫').mysqli_error();
$conn = mysqli_select_db($link,'test');
if($conn){
    echo '數據庫連接成功';
}

 

 

上面的代碼$conn = mysqli_select_db($link,'test');可以使用下面的代碼替代:

$conn = mysqli_query($link,'use test');

 

使用mysql_query()函數執行SQL語句

下面舉例說明常見的 SQL 語句的用法。

<?php

$conn = mysqli_connect('localhost','root','123456','test') or die('不能連接到數據庫').mysqli_error();

//添加會員記錄
$sql = "INSERT INTO login(username,password,confirm,email) VALUES ('cyy2','123456','123456','[email protected]')";
if(mysqli_query($conn,$sql)){
    echo '插入成功';
}else{
    echo 'error:'.$sql.'<br>'.mysqli_error($conn);
}

//修改會員記錄
$sql = "UPDATE login SET username = 'cyy' where id = '3'";
if(mysqli_query($conn,$sql)){
    echo '更新成功';
}else{
    echo 'error:'.$sql.'<br>'.mysqli_error($conn);
}

//刪除會員記錄
$sql = "DELETE FROM login WHERE id = '4' ";
if(mysqli_query($conn,$sql)){
    echo '刪除成功';
}else{
    echo 'error:'.$sql.'<br>'.mysqli_error($conn);
}

//查詢會員記錄
$sql = "SELECT * FROM login";
if(mysqli_query($conn,$sql)){
    echo '查詢成功';
}else{
    echo 'error:'.$sql.'<br>'.mysqli_error($conn);
}

//顯示錶結構
$sql = "DESC login";
if(mysqli_query($conn,$sql)){
    echo '顯示成功';
}else{
    echo 'error:'.$sql.'<br>'.mysqli_error($conn);
}

 

使用mysql_fetch_array()獲取數組結果集中的信息

mysql_fetch_array() 函數從結果集中取得一行作爲關聯數組,或數字數組,或二者兼有返回根據從結果集取得的行生成的數組,如果沒有更多行則返回 false。

注意:

mysql_fetch_array() 函數返回的字段名區分大小寫。

具體開發步驟如下:

1.創建一個PHP動態頁面,命名index.php,在index.php中添加一個表單,一個文本框以及一個提交按鈕,具體代碼如下:

<html>

<body>

    <!--上傳文件表單-->

    <form method="post" action="" name = form1>

        <table>

           <tr>

               <td width="605" height="51" bgcolor="#CC99FF">

                   <p align="center">請輸入查詢內容

                       <input type="text" name="username" id="username" size="25">&nbsp;

                       <input type="submit" name="Submit" value="查詢">

                   </p>

               </td>

           </tr>

            </table>

        </form>

</body>

</html>

頁面如下:

 

 

2.連接到MySQL數據庫服務器。具體代碼如下:

<?php

header("Content-Type:text/html; charset=utf-8");

//連接數據庫
$link = mysqli_connect("localhost","root","123456","test")or die("連接數據庫失敗".mysqli_error());
mysqli_query($link,"set names utf-8");   //設置編碼,防止發生亂碼

?>

 

3.使用 if 條件語句判斷用戶是否單擊“查詢”按鈕,如果是那麼使用POST 方法接受傳遞過來的信息,執行SQL語句,該查詢語句主要用來實現信息的模糊查詢,查詢結果被賦予變量$sql。然後從數組結果集中獲取信息,具體代碼如下:

//模糊查詢
$sql = mysqli_query($link,"SELECT * FROM login");
$info = mysqli_fetch_array($sql);
if($_POST['submit'] == '查詢'){
  $username = $_POST['username'];
  $sql = mysqli_query($link,"SELECT * FROM login WHERE username LIKE '%".trim($username)."%' ");
  $info = mysqli_fetch_array($sql);
}

 

4.使用 if條件語句對結果集變量$info進行判斷,如果該值爲假,那麼就使用 echo 語句輸出檢索的信息不存在,具體代碼如下:

//判斷結果
if(!$info){
  echo "<p align='center' style='color: #FF0000;font-size: 12px'>對不起,查詢的信息不存在</p>";
}

 

5.使用 do...while 循環語句以表格形式輸出數組結果集$info[]中的信息,一字段的名稱爲索引,使用 echo 語句輸出數組$info[]的信息,具體代碼如下:

//循環輸出結果
do {      //do...while 循環

    ?>

    <table>

        <tr align="left" bgcolor="#FFFFFF">

            <td height="20" align="center"><?php echo $info["id"] ?></td>

            <td height="20" align="center"><?php echo $info["username"] ?></td>

            <td height="20" align="center"><?php echo $info["password"] ?></td>

            <td height="20" align="center"><?php echo $info["confirm"] ?></td>

            <td height="20" align="center"><?php echo $info["email"] ?></td>

        </tr>

    </table>

    <?php

}while($info = mysqli_fetch_array($sql));

 

輸出結果如下:

 

 

使用mysql_fetch_row()函數逐行獲取結果集中的每條記錄

<html>

<body>

    <!--上傳文件表單-->

    <form method="post" action="" name = form1>

        <table>

           <tr>

               <td width="605" height="51" bgcolor="#CC99FF">

                   <p align="center">請輸入查詢內容

                       <input type="text" name="username" id="username" size="25">&nbsp;

                       <input type="submit" name="submit" value="查詢">

                   </p>

               </td>

           </tr>

            </table>

        </form>

<?php

header("Content-Type:text/html; charset=utf-8");
error_reporting(0);

//連接數據庫
$link = mysqli_connect("localhost","root","123456","test")or die("連接數據庫失敗".mysqli_error());
mysqli_query($link,"set names utf-8");   //設置編碼,防止發生亂碼


//模糊查詢
$sql = mysqli_query($link,"SELECT * FROM login");
$info = mysqli_fetch_row($sql);
if($_POST['submit'] == '查詢'){
  $username = $_POST['username'];
  $sql = mysqli_query($link,"SELECT * FROM login WHERE username LIKE '%".trim($username)."%' ");
  $info = mysqli_fetch_row($sql);
}

//判斷結果
if(!$info){
  echo "<p align='center' style='color: #FF0000;font-size: 12px'>對不起,查詢的信息不存在</p>";
}

//循環輸出結果
do {      //do...while 循環

    ?>

    <table>

        <tr align="left" bgcolor="#FFFFFF">

            <td height="20" align="center"><?php echo $info[0] ?></td>

            <td height="20" align="center"><?php echo $info[1] ?></td>

            <td height="20" align="center"><?php echo $info[2] ?></td>

            <td height="20" align="center"><?php echo $info[3] ?></td>

            <td height="20" align="center"><?php echo $info[4] ?></td>

        </tr>

    </table>

    <?php

}while($info = mysqli_fetch_row($sql));

?>

</body>

</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章