亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

PHP從入門到精通——讀書筆記(第16—19章:MyS

系統 2108 0

第十六章:MySql數據庫基礎

1:MySql概述
1)功能強大:提供了多種數據庫存儲引擎,支持事務、視圖、存儲過程和觸發器
2)支持跨平臺
3)運行速度快:在Mysql中,使用了B樹磁盤表(MyISAM)和索引壓縮;
4)支持各種開發語言:php、asp.net、java、python、ruby、c、c++、perl等
5)數據庫存儲容量大:mysql數據庫的最大有效表尺寸是由操作系統對文件大小的限制決定的。表空間最大容量64TB

2:啟動、連接、斷開和停止MySql服務器(windows平臺)
1)啟動:net start mysql
2)連接:mysql -u root -h 127.0.0.1 -p password (用戶名、MySql服務器所在地址、用戶密碼。服務器地址可不寫)
3)斷開:exit、quit
4)停止:net stop mysql

3:MySql數據庫操作
1)創建數據庫: CREATE DATABASE 數據庫名;
2)查看數據庫: SHOW DATABASES;
3)選擇數據庫:USE DATABASE
4)刪除數據庫:DROP DATABASE

4:MySql數據表操作
1)創建數據表:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 數據表名 [(create_difinition,...)][table_options][select_statement]
TEMPORARY:如果使用該關鍵字,表示創建一個臨時表。
create_difinition: col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [PRIMARY KEY] [reference_definition]。如:
create table table_name (列名1 屬性, 列名2 屬性...);

2)查看表結構 SHOW COLUMNS 或 DESCRIBE
SHOW [FULL] COLUMNS FROM 數據表名 [FROM 數據庫名]; 或 SHOW [FULL] COLUMNS FROM 數據表名.數據庫名
DESCRIBE 數據表名(可簡寫成DES)
查看某列: DES 數據表名 列名;

3)修改表結構:ALTER TABLE
ALTER[IGNORE] TABLE 數據表名 alter_spec [,alter_spec]... (如果指定 IGNORE 時,如果出現重復關鍵的行,則只執行一行,其他重復的唄刪除)
alter table tb_admin add email varchar(50) not null, modify user varchar(40); (modify是用來修改字句定義字段)
說明:通過alter修改表列,其前提是必須將表中數據全部刪除,然后才可以修改表列

4)重命名表:RENAME TABLE
5)刪除表:DROP TABLE

5:MySQL 語句操作
1)插入記錄 insert:insert into 數據表名(column_name,......)values(v1,v2.....)
2)查詢數據庫記錄 : select selection_list from 數據表名 where ... group by ... order by ... having ... limit...
(group by:對結果進行分組;order by:對結果進行排序;having:查詢時滿足的第二條件;limit:限定輸出的結果)
多表查詢:select 字段名 from 表1,表2...... where 表1.字段=表2.字段 and 其他查詢條件
3)修改、刪除記錄:update、delete

6:MySQL數據庫備份和恢復
要在命令行模式下操作MySQL數據庫,必須要對電腦的環境變量進行設置,右擊“我的電腦”,選擇“屬性”,選擇“高級”,然后選擇“環境變量”。在用戶變量的文本框中找到變量PATH并選中,在PATH的變量值文本框中添加:“D:\webpage\AppServ\MySQL\bin”(MySql中bin文件夾的安裝路徑)
1)備份:使用MYSQLDUMP命令
mysqldump -uroot -proot db_databasename>F:\db_databasename.txt
其中-uroot中的root是用戶名,而-proot中的root是密碼,db_dabataname 是數據庫名。F:\db_databasename.txt 是備份存儲的位置

注意:“-uroot”中是沒有空格的,在該命令的結尾處也沒有任何的結束符

2)恢復:mysql -uroot -proot db_database < F:\db_databasename.txt

第十七章:phpMyAdmin 圖形化管理工具


第十八章:PHP操作MySQL數據庫

1:連接mysql服務器:使用 mysql_connect() 函數

mysql_connect('hostname', 'username', 'password');?
hostname是mysql服務器的主機名(或IP),如果省略端口號,默認為3306

      $link = mysql_connect("localhost","root","root") or die ("不能連接到數據庫服務器".mysql_error() );



if ($link) {

       echo "連接成功";

}
    

技巧:在mysql_connect()函數前面添加符號“@”;用于限制這個命令的出錯信息的顯示

2:選擇mysql數據庫:使用 mysql_select_db() 函數 選擇mysql數據庫服務器上的數據庫,并與數據庫建立連接

mysql_select_db ( string 數據庫名 [, resource link_identifier] ) ?或 mysql_query ("use 數據庫名"[, resource link_identifier]);
link_identifier是MySQL服務器的連接標識。如果沒有指定連接標識符,則使用上一個打開的連接。如果沒有打開的連接,本函數將無參數調用mysql_connect()函數來嘗試打開一個并使用。

      $link = mysql_connect ("localhost", "root", "root") or die ("不能連接到數據庫服務器".mysql_error() );



//選擇數據庫db_database18

$db_selected = mysql_select_db("db_database18", $link);



if ($db_selected){



    echo "數據庫選擇成功";  

}
    

也可以使用$db_selected = mysql_query ("use db_database18", $link);

3:執行SQL語句:在選擇的數據庫中使用 mysql_query() 函數執行sql語句

1)mysql_query ( string query [, resource link_identifier] )
注意:在mysql_query() 函數中執行的sql語句不應以分號 “;” 結尾

      $result = mysql_query ("insert into tb_member values('tm','111','tm@tmsoft.com' ", $link);



$result = mysql_query ("update tb_member set user = '純凈水', pwd='1025' where user = 'tm' ", $link);



$result = mysql_query ("delete from tb_member where user = '純凈水' ", $link);



$result = mysql_query (" select * from tb_member ", $link);



//顯示表結構

$result = mysql_query (" DESC tb_member ", $link);
    

2)使用 mysql_fetch_array() 函數從數組結果集中獲取信息

array mysql_fetch_array ( resource result [, int result_type] )
result:資源類型的參數,要傳入的是由mysql_query()函數返回的數據指針
result_type:可選項,整數型參數,要傳入的是MYSQL_ASSOC(關聯索引)、MYSQL_NUM(數字索引)、MYSQL_BOTH(包含以上2種,默認)
注意:本函數返回的字段名區分大小寫

View Code
        
          $sql
        
         = 
        
          mysql_query
        
        ("select * from tb_book"
        
          );




        
        
          $info
        
         = 
        
          mysql_fetch_array
        
        (
        
          $sql
        
        
          );




        
        
          if
        
         (
        
          $_POST
        
        [submit] == "查詢"
        
          ){



        
        
        
          $txt_book
        
         = 
        
          $_POST
        
        
          [txt_book];



        
        
        
          $sql
        
         = 
        
          mysql_query
        
        ("select * from tb_book where bookname like '%".
        
          trim
        
        (
        
          $txt_book
        
        )."%'  "
        
          );



        
        
        
          $info
        
         = 
        
          mysql_fetch_array
        
        (
        
          $sql
        
        
          );

}
        
      

3)使用 mysql_fetch_object() 函數從結果集中獲取一行作為對象

object mysql_fetch_object ( resource result )——返回的是一個對象而不是數組,通過字段名訪問數組: $row -> col_name?
注意:本函數區分大小寫

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

array mysql_fetch_row ( resource result )
與mysql_fetch_array()函數區別是:使用從0開始的數字下標。
區分大小寫

5)使用 mysql_num_rows() 函數獲取查詢結果集中的記錄數

int mysql_num_rows ( resource result )

PHP分頁:

View Code
        <html>

<head>

<title>公告信息管理</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<link href="css/style.css" rel="stylesheet">

</head>

<body>

<table width="828" height="522" border="0" align="center" cellpadding="0" cellspacing="0" id="__01">

    <tr>

        <td background="images/image_01.gif">&nbsp;            </td>

        <td height="140" background="images/image_02.gif">&nbsp;            </td>

    </tr>

    <tr>

        <td width="202" rowspan="3" valign="top"><table width="202" border="0" cellspacing="0" cellpadding="0">

          <tr>

            <td><?php 
        
          include
        
        ("menu.php");?></td>

          </tr>

        </table></td>

        <td height="34" background="images/image_04.gif">&nbsp;            </td>

    </tr>

    <tr>

        <td height="38" background="images/image_06.gif">&nbsp;            </td>

    </tr>

    <tr>

        <td height="270" valign="top">

            <table width="626" height="100%" border="0" cellpadding="0" cellspacing="0">

              <tr>

                <td height="257" align="center" valign="top" background="images/image_08.gif"><table width="600" height="271"  border="0" cellpadding="0" cellspacing="0">

                  <tr>

                    <td height="22" align="center" valign="top" 
        
          class
        
        ="word_orange"><strong>公告信息<strong>分頁顯示</strong></strong></td>

                  </tr>

                  <tr>

                    <td height="249" align="center" valign="top">

                    <table width="550" border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFFFF" bgcolor="#999999">

                      <tr align="center" bgcolor="#f0f0f0">

                        <td width="221">公告標題</td>

                        <td width="329">公告內容</td>

                      </tr>

                    <?
        
          php

                    
        
        
          $conn
        
        =
        
          mysql_connect
        
        ("localhost","root","root") or 
        
          die
        
        ("數據庫服務器連接錯誤".
        
          mysql_error
        
        
          ());

                    
        
        
          mysql_select_db
        
        ("db_database18",
        
          $conn
        
        ) or 
        
          die
        
        ("數據庫訪問錯誤".
        
          mysql_error
        
        
          ());

                    
        
        
          mysql_query
        
        ("set names gb2312"
        
          );

                    
        
        
          /*
        
        
            $page為當前頁,如果$page為空,則初始化為1  
        
        
          */
        
        
          if
        
         (
        
          $page
        
        ==""
        
          ){

                        
        
        
          $page
        
        =1
        
          ;}

                       
        
        
          if
        
         (
        
          is_numeric
        
        (
        
          $page
        
        
          )){

                        
        
        
          $page_size
        
        =4;                                     
        
          //
        
        
          每頁顯示4條記錄
        
        
          $query
        
        ="select count(*) as total from tb_affiche  order by id desc"
        
          ;   

                        
        
        
          $result
        
        =
        
          mysql_query
        
        (
        
          $query
        
        );                          
        
          //
        
        
          查詢符合條件的記錄總條數
        
        
          $message_count
        
        =
        
          mysql_result
        
        (
        
          $result
        
        ,0,"total");        
        
          //
        
        
          要顯示的總記錄數
        
        
          $page_count
        
        =
        
          ceil
        
        (
        
          $message_count
        
        /
        
          $page_size
        
        );          
        
          //
        
        
          根據記錄總數除以每頁顯示的記錄數求出所分的頁數
        
        
          $offset
        
        =(
        
          $page
        
        -1)*
        
          $page_size
        
        ;                        
        
          //
        
        
          計算下一頁從第幾條數據開始循環  
        
        
          $sql
        
        =
        
          mysql_query
        
        ("select * from tb_affiche order by id desc limit 
        
          $offset
        
        , 
        
          $page_size
        
        "
        
          );

                        
        
        
          $row
        
        =
        
          mysql_fetch_object
        
        (
        
          $sql
        
        
          );

                        
        
        
          if
        
        (!
        
          $row
        
        
          ){

                            
        
        
          echo
        
         "<font color='red'>暫無公告信息!</font>"
        
          ;

                        }

                        
        
        
          do
        
        
          {

                        
        
        ?>

                      <tr bgcolor="#FFFFFF">

                        <td><?php 
        
          echo
        
        
          $row
        
        ->title;?></td>

                        <td><?php 
        
          echo
        
        
          $row
        
        ->content;?></td>

                      </tr>

                    <?
        
          php

                        }
        
        
          while
        
        (
        
          $row
        
        =
        
          mysql_fetch_object
        
        (
        
          $sql
        
        
          ));

                    }

                    
        
        ?>

                     </table>

                      <br>

                      <table width="550" border="0" cellspacing="0" cellpadding="0">

                        <tr>

                          <!--  翻頁條 -->

                            <td width="37%">&nbsp;&nbsp;頁次:<?php 
        
          echo
        
        
          $page
        
        ;?>/<?php 
        
          echo
        
        
          $page_count
        
        ;?>頁&nbsp;記錄:<?php 
        
          echo
        
        
          $message_count
        
        ;?> 條&nbsp; </td>

                            <td width="63%" align="right">

                            <?
        
          php

                            
        
        
          /*
        
        
            如果當前頁不是首頁  
        
        
          */
        
        
          if
        
        (
        
          $page
        
        !=1
        
          ){

                            
        
        
          /*
        
        
            顯示“首頁”超鏈接  
        
        
          */
        
        
          echo
        
          "<a href=page_affiche.php?page=1>首頁</a>&nbsp;"
        
          ;

                            
        
        
          /*
        
        
            顯示“上一頁”超鏈接  
        
        
          */
        
        
          echo
        
         "<a href=page_affiche.php?page=".(
        
          $page
        
        -1).">上一頁</a>&nbsp;"
        
          ;

                            }

                            
        
        
          /*
        
        
            如果當前頁不是尾頁  
        
        
          */
        
        
          if
        
        (
        
          $page
        
        <
        
          $page_count
        
        
          ){

                            
        
        
          /*
        
        
            顯示“下一頁”超鏈接  
        
        
          */
        
        
          echo
        
         "<a href=page_affiche.php?page=".(
        
          $page
        
        +1).">下一頁</a>&nbsp;"
        
          ;

                            
        
        
          /*
        
        
            顯示“尾頁”超鏈接  
        
        
          */
        
        
          echo
        
          "<a href=page_affiche.php?page=".
        
          $page_count
        
        .">尾頁</a>"
        
          ;

                            }

                            
        
        
          mysql_free_result
        
        (
        
          $sql
        
        
          );

                            
        
        
          mysql_close
        
        (
        
          $conn
        
        
          );

                            
        
        ?>

                        </tr>

                      </table></td>

                  </tr>

                </table></td>

              </tr>

            </table>            </td>

    </tr>

    <tr>

        <td bgcolor="#F0F0F0"></td>

        <td height="43" background="images/image_12.gif"></td>

    </tr>

</table>

</body>

</html>
      

注意:在連接數據庫時,一定要使用 mysql_query("set names gb2312")函數設置數據庫的編碼格式(也可以設置為其他編碼)。通過該設置可以避免在輸出中文字符串時出現亂碼。

4:關閉結果集:數據庫操作完成后,需要關閉結果集以釋放資源—— mysql_free_result ($result);

技巧:如果在多個網頁中都要頻繁進行數據庫訪問,則可以建立與數據庫服務器的持續連接來提高效率。因為每次與數據庫服務器的連接需要較長的時間和較大的開銷。建立持續連接的方法:調用 mysql_pconnect() 代替 myslq_connect()。建立的持續連接在本程序結束時,不需要調用 mysql_close()來關閉。下次程序再次執行 mysql_pconnect() 函數時,系統自動直接返回已經建立的持續連接的ID號,而不再去真的連接數據庫。

5:關閉MySQL服務器——完成數據庫操作后,應該使用 mysql_close() 函數關閉與MySQL服務器的連接: mysql_close ($Link);
說明:PHP與數據庫的連接是非持久連接,系統會自動回收,一般不用設置關閉。但如果一次性返回的結果集比較大,或網站訪問量比較多,則最好使用mysql_close() 函數手動進行釋放。

?

第十九章:ADODB類庫

1:概述——ADODB:Active Data Objects Data Base,它是存取數據庫所用到的一組函數,此函數庫用來隱藏不同數據庫函數間的差異,讓開發者可以很簡單地去切換數據庫。要使用ADODB來操作數據庫,首先下載ADODB類庫包,將其解壓到Web服務器目錄下,然后調用ADODB中的文件即可

2:使用ADODB操作MySQL

View Code
        
          /*
        
        
              

(1)載入(include)adodb.inc.php文件

要使用ADODB類庫,首先是要啟動ADODB,啟動ADODB的方法就是載入adodb.ini.php文件.


        
        
          */
        
        
          include_once
        
         ('../adodb5/adodb.inc.php'
        
          );


        
        
          /*
        
        
          

(2)建立連接

建立連接使用到的函數為:ADONewConnection()和NewADOConnection()。


        
        
          */
        
        
          $conn
        
         = ADONewConnection('mysql'
        
          );


        
        
          /*
        
        
          

(3)連接數據庫

第二步的建立連接,并沒有真正的連接上數據庫,需要使用Connect()或PConnect()成員方法來完成最后的鏈接步驟。Connect()和PConnect()方法的格式是一樣的,不同的是:PConnect()方法為持續性鏈接,而Connect()方法為非持續性鏈接。

Connect($host,[$user],[$password],[$database])



參數含義:

    $host:數據庫服務器地址。

    $user:數據庫帳號。

    $password:帳號密碼。

    $database:連接的數據庫。

在本實例中,要鏈接數據庫tb_database21,服務器為本機,用戶名密碼都為root。


        
        
          */
        
        
          $conn
        
         -> PConnect('localhost','root','root','db_database21'
        
          );


        
        
          //
        
        
          設置編碼
        
        
          $conn
        
         -> execute('set names gb2312'
        
          );


        
        
          /*
        
        
          

/*(4)執行SQL語句

成功連接數據庫后,就可以執行SQL語句對數據庫進行操作了。執行SQL語句的方法是Execute()。該方法返回執行SQL語句后的記錄集。如果發生錯誤,則返回false。Execute()方法的格式為:

Execute($sql,$inputarr=false)


        
        
          */
        
        
          $rst
        
         = 
        
          $conn
        
         -> Execute('select * from tb_object') or 
        
          die
        
        ('執行錯誤'
        
          );




        
        
          /*
        
        
          

(5)判斷結果,并對結果處理

第4步執行后,就需要對返回的記錄集進行處理了。一般處理結果集時,首先判斷EOF屬性表明當前的記錄指針已經指向了記錄集的最后一筆。movenext()方法的作用是將記錄指針向下移動一位。


        
        
          */
        
        
          while
        
        (!
        
          $rst
        
         -> EOF){                    
        
          //
        
        
          如果沒有錯誤,則配合wihle語句循環輸出結果
        
        
          echo
        
        
          $rst
        
         -> fields['bigclass'].' '
        
          ;    

        
        
        
          $rst
        
         -> movenext();                    
        
          //
        
        
          指針下移
        
        
              }

    


        
        
          /*
        
        
          

(6)關閉連接

當對數據庫的操作結束后,需要關閉連接,釋放內存。關閉連接的方法是close()。


        
        
          */
        
        
          $rst
        
         ->
        
           close();


        
        
          $conn
        
         -> close();
      

也可以通過數據源名稱(DSN)的方式進行連接,代碼如下:

      
        include_once
      
      ('../adbdb5/dbodb.inc.php'
      
        );


      
      
        $conn
      
       = ADONewConnection('mysql://root:root@localhost/db_database19');
    

使用ODBC連接MSSQL數據庫

      
        include_once
      
      ('../adodb5/adodb.inc.php'
      
        );


      
      
        $conn
      
       = ADONewConnection('odbc_mssql'
      
        );


      
      
        $conn
      
      ->PConnect("Driver={SQL Server};Server=localhost;Database=mydb; ", 'username', 'password');
    

?

PHP從入門到精通——讀書筆記(第16—19章:MySQL數據庫基礎、PHP操作MySQL、ADODB類庫等)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 视频一区免费 | 日日做夜夜爱 | 欧美一级成人免费大片 | 午夜伦情电午夜伦情影院 | 性做久久久久久蜜桃花 | 久久久四虎成人永久免费网站 | 欧美精品国产一区二区三区 | 337p欧洲亚洲大胆艺术 | 色偷偷亚洲 | 四虎精品福利视频精品 | 在线综合+亚洲+欧美中文字幕 | 日本在线看片网站 | 天天操人人干 | 中国一级特黄高清免费的大片 | 久久精品在线观看 | 波多野吉衣一区二区三区在线观看 | 特黄日韩免费一区二区三区 | 免费观看性欧美毛片 | 日韩精品一区二区三区中文精品 | 四虎影视永久免费观看地址 | 中文字幕免费在线播放 | 四虎精品国产一区二区三区 | 国产高清精品久久久久久久 | 国产精品日日做人人爱 | 激情五月综合网 | 国产精品入口麻豆午夜 | 日本韩国欧美在线观看 | 2020亚洲欧美日韩在线观看 | 日本高清在线精品一区二区三区 | 国产精品麻豆视频 | 久久婷婷综合中文字幕 | 欧美高清视频www夜色资源网 | 麻豆传煤一区免费入 | 在线成人精品国产区免费 | 亚州久久| 国产精品亚洲第一区广西莫菁 | 亚洲日本综合 | 成人免费视频一区二区 | 起碰成人免费公开网视频 | 久久精品久久精品国产大片 | 夜夜干天天操 |