程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 一些簡單的PHP連接數據庫例子詳解

一些簡單的PHP連接數據庫例子詳解

編輯:關於PHP編程

本文章來給各位php入門者詳細關於php連接數據庫的實例代碼,這裡主要講到了入門級的mysql連接代碼到高級的封裝數據庫連接類,希望此文章對各位朋友所有幫助。

連接MySQL數據庫的兩種方法:

(1)利用PHP的數據庫函數連接

此方式是最常用的一種方式.
這裡主要用到四個數據庫函數:
mysql_connect () 建立與MySQL服務器的連接。
mysql_select_db ():選擇MySQL服務器中的數據庫供以後的數據查詢操作query處理。
mysql_query ():送出query字符串以幫助MySQL做相關的處理或執行。
mysql_fetch_row ():用來將查詢結果result單行移到數組變量中。數組的索引是數字
索引,第一個索引值是0。


(2)通過ODBC連接

PHP通過ODBC連接MySQL數據庫主要用到四個函數:
Odbc_connect ():用來同ODBC數據源建立連接。
Odbc_do ():用來在建立連接之後執行數據庫查詢。
Odbc_result():用於取得當前記錄行中某個字段的值。
Odbc_fetch_row ():用來把查詢結果保存到數組,每個數組元素對應一條記錄。

我們先來看PHP的數據庫函數連接 方法實例

連接到一個 MySQL 數據庫

在您能夠訪問並處理數據庫中的數據之前,您必須創建到達數據庫的連接。

在 PHP 中,這個任務通過 mysql_connect() 函數完成。

語法

mysql_connect(servername,username,password);參數 描述
servername 可選。規定要連接的服務器。默認是 "localhost:3306"。
username 可選。規定登錄所使用的用戶名。默認值是擁有服務器進程的用戶的名稱。
password 可選。規定登錄所用的密碼。默認是 ""。

 代碼如下 復制代碼

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_close($con);
?>

面向對象mysqli(詳細教程)

 代碼如下 復制代碼


<?php
$mysqli = new mysqli('localhost','root','','volunteer');
if (mysqli_connect_errno()){
 die('Unable to connect!'). mysqli_connect_error();
}
?>

pdo連接mysql(詳細教程)

 代碼如下 復制代碼


<?php
 
$db = new PDO('mysql:host=localhost;dbname=test', 'root', '');
try {
 foreach ($db->query('select * from user') as $row){
  print_r($row);
 }
 $db = null;  //關閉數據庫
} catch (PDOException $e) {
 echo $e->getMessage();
}
?>


然後我們還可以使用ODBC連接數據庫

 代碼如下 復制代碼


<?php
require_once './adodb5/adodb.inc.php';
$conn = &ADONewConnection('mysql');
$conn->connect('localhost','root','','test');
$conn->Execute("set names utf8");
$res = $conn->Execute("select * from user");
if (!$res){
 echo $conn->ErrorMsg();
}else{
 var_dump($res);
}
?>

mysql數據連接類

 代碼如下 復制代碼


<?php
//------------------------------------------------------------------------------------------
// ※Database()                   構造函數,數據庫初始參數
// ※Select()                     查詢
// ※GetRows()                    返回查詢的記錄總數
// ※Insert()                     插入記錄
// ※Update()                     更新
// ※Delete()                     刪除
// ※Halt()                       中斷並顯示錯誤信息*/
//------------------------------------------------------------------------------------------
define("DATABASETYPE", "1");       //定義數據庫類型:1為MySql;2為SQL Server;3為Oracle;4為Odbc
define("SERVER", "localhost");     //Host name or IP address of the database server
define("DATABASE", "dbName");   //要連接的數據庫名
define("USER", "tableName");     //用於連接數據庫的用戶名
define("PASSWORD", "paswd");    //用於連接數據庫的密碼 

class Database {
    var $dbLink;                      //連接句柄
    var $result;                      //查詢句柄
    var $insId;                       //Insert()成功返回AUTO_INCREMENT列的值
    var $rows;                        //返回數據數組
    var $numRows;                     //返回數據數目
    var $dbHost, $dbUser, $userPassword, $database;
    var $dbType = DATABASETYPE;
    var $msgFlag = "yes";            //yes:show the Mysql message ; no: die by show "Halted."

    function Database($dbHost = SERVER, $dbUser = USER, $userPassword = PASSWORD, $database = DATABASE) {
        switch ($this->dbType) {
            case 1:
                $this->dbLink = @mysql_pconnect($dbHost, $dbUser, $userPassword); // or die("Can't Connect to Remote Host!");
                @mysql_select_db($database, $this->dbLink); // or die ("Can't Connect to Remote Host!");
                break;
            case 2:
                break;
        }
        return true;
    }

    /* SQL:Select() 返回為false無結果 */

    function Select($table, $columns, $condition = 1) {
        $sql = "select $columns from $table where $condition ";
        $this->result = @mysql_query($sql, $this->dbLink);
        unset($this->rows);
        if ($this->result) {
            $i = 0;
            if (!($this->rows = array("$i" => @mysql_fetch_array($this->result))))
                return false;
            if (($this->numRows = @mysql_num_rows($this->result)) == 0)
                return false;
            while ($tempRows = @mysql_fetch_array($this->result)) {
                array_push($this->rows, $tempRows);
            }
        } else {
            $this->Halt($sql);
            return false;
        }
        return true;
    }

    /* SQL:GetRows() 返回查詢的記錄總數 */

    function GetRows($table, $condition = 1) {
        $sql = "select count(1) as count from $table where $condition";
        $this->result = @mysql_query($sql, $this->dbLink);
        if ($this->result) {
            $temp = @mysql_fetch_array($this->result);
            $this->numRows = $temp[count];
        } else {
            $this->Halt($sql);
            return false;
        }
        return $this->numRows;
    }

    /* SQL:Insert() */

    function Insert($table, $columns, $values) {
        $sql = "insert into $table ($columns) values ($values)";
        $this->result = @mysql_query($sql, $this->dbLink);
        if ($this->result)
            $this->insId = @mysql_insert_id($this->dbLink);
        else {
            $this->Halt($sql);
            return false;
        }
        return true;
    }

    /* SQL:Update() */

    function Update($table, $setings, $condition) {
        $sql = "update $table set $setings where $condition";
        $this->result = @mysql_query($sql, $this->dbLink);
        if ($this->result)
            $this->numRows = @mysql_affected_rows($this->result);
        else {
            $this->Halt($sql);
            return false;
        }
        return true;
    }

    /* SQL:Delete */

    function Delete($table, $condition) {
        $sql = "delete from $table where $condition";
        $this->result = @mysql_query($sql, $this->dbLink);
        if ($this->result)
            $this->numRows = @mysql_affected_rows($this->result);
        else {
            $this->Halt($sql);
            return false;
        }
        return true;
    }

    /* Halt():error message */

    function Halt($msg) {
        if ($this->msgFlag == "yes") {
            printf("<b>Database Query Error:</b> %s<br>n", $msg);
            printf("<b>MySql Error:</b> %s<br>n", mysql_error());
        }else
            echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=../include/error.htm'>"; //自定一個出錯提示文件
        return false;
    }
}

switch ($db->dbType) {
    case 1:
        @mysql_close();
        break;
    case 2:
        break;
}
$db = new Database();
?>

友情提示

如果出現連接mysql數據庫中文亂碼我們可以在連接數據庫查詢之前加上mysql_query("set names utf8"); 如果你是gbk就使用gbk編編碼了

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved