TOP

[PHP][轉貼]PHP內使用mysql相關語法

[轉貼]PHP內使用mysql相關語法

原文出處:http://austintodo.pixnet.net/blog/post/23821431-php---mysql-%E6%95%99%E5%AD%B8

這邊有個php mysql 教學的網站
http://www.php-mysql-tutorial.com/
用php+mysql也是行之有年了...
紀錄一下在php內怎麼使用mysql相關語法


一開始剛學php的時候
只是很簡單的使用php內建的mysql_connect指令

簡單直覺的方式
<?php
    $dbhost = '127.0.0.1';
    $dbuser = 'mysql_user';
    $dbpass = 'mysql_password';
    $dbname = 'mysql_databaseName';
    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connection');
    mysql_query("SET NAMES 'utf8'");
    mysql_select_db($dbname);
    $sql = "SELECT COUNT(*) as total FROM `FileList` WHERE `class` = 0;";
    $result = mysql_query($sql) or die('MySQL query error');
    while($row = mysql_fetch_array($result)){
        echo $row['name'];
    }
?>

其中以下四個變數是要設定你的mysql相關設定
    $dbhost = '127.0.0.1';
    $dbuser = 'mysql_user';
    $dbpass = 'mysql_password';
    $dbname = 'mysql_databaseName';

這邊就是建立連線
    $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connection');

設定相關的編碼和選擇要使用的資料庫
    mysql_query("SET NAMES 'utf-8'");
    mysql_select_db($dbname);

接著就準備開始使用mysql的語法了
    $sql = "SELECT COUNT(*) as total FROM `FileList` WHERE `class` = 0;";
    $result = mysql_query($sql) or die('MySQL query error');
    while($row = mysql_fetch_array($result)){
        echo $row['name'];
    }

先用$sql紀錄語法,接著丟到mysql_query($sql)
這函式就會把$sql的語法丟到mysql讓他去執行
然後利用$result = mysql_query($sql)去得到回傳的結果
根據sql語法回傳的資料結構也不一樣
若是最一般的select語法則可以利用while迴圈和mysql_fetch_array去拿到資料

以上是最簡單的php mysql語法
但是後來發現如果一個php file裡面要存取多次database或是存取不只一個database
就會非常麻煩
所以我就改用了物件導向的方式
在此感謝NTUCSIE IRLab的健文學長
教導小弟使用php class...受益良多!!

物件導向的方式
通常我會寫兩個檔案,一個是DB_config.php,另外一個是DB_class.php

DB_config.php就是很簡單的設定database的位址、username、password以及使用的資料表
<?php
    global $_DB; 
    $_DB['host'] = "localhost";
    $_DB['username'] = "username";
    $_DB['password'] = "password";
    $_DB['dbname'] = "db_name";
?>

另外再寫一個DB_Class.php檔
<?php

class DB 
{
    var $_dbConn = 0;
    var $_queryResource = 0;
    
    function DB()
    {
        //do nothing
    }
    
    function connect_db($host, $user, $pwd, $dbname)
    {
        $dbConn = mysql_connect($host, $user, $pwd);
        if (! $dbConn)
            die ("MySQL Connect Error");
        mysql_query("SET NAMES utf8");
        if (! mysql_select_db($dbname, $dbConn))
            die ("MySQL Select DB Error");
        $this->_dbConn = $dbConn;
        return true;
    }
    
    function query($sql)
    {
        if (! $queryResource = mysql_query($sql, $this->_dbConn))
            die ("MySQL Query Error");
        $this->_queryResource = $queryResource;
        return $queryResource;        
    }
    
    /** Get array return by MySQL */
    function fetch_array()
    {
        return mysql_fetch_array($this->_queryResource, MYSQL_ASSOC);
    }
    
    function get_num_rows()
    {
        return mysql_num_rows($this->_queryResource);
    }

    /** Get the cuurent id */    
    function get_insert_id()
    {
        return mysql_insert_id($this->_dbConn);
    } 
    
}
?>


最後在要使用mysql的php file裡面

<?php
    require_once("DB_config.php");
    require_once("DB_class.php");

    $db = new DB();
    $db->connect_db($_DB['host'], $_DB['username'], $_DB['password'], $_DB['dbname']);
    $db->query("SELECT ....");
    while($result = $db->fetch_array())
    {
        // do something you want...
    }
?>

0 意見:

張貼留言