1)用戶的 Web 瀏覽器發出 HTTP 請求,請求特定 Web 頁面。php
2)Web服務器收到.php 的請求獲取該文件,並將它傳到 PHP 引擎,要求它處理。html
3)PHP 引擎開始解析腳本。 腳本中有一條鏈接數據庫的命令, 還有執行一個查詢的令。命PHP 打開通向 MYSQL 數據庫的鏈接,發送適當的查詢。mysql
4)MYSQL 服務器接收數據庫查詢並處理。將結果返回到 PHP 引擎。sql
5)PHP 以你去哪幹完成腳本運行,一般,這包括將查詢結果格式化成 HTML 格式。而後再輸出 HTML 返回到 Web 服務器。數據庫
6)Web服務器將 HTML 發送到瀏覽器。數組
整數型: TINYINT,SMALLINT,INT,BIGINT瀏覽器
浮點型: FLOA T,DOUB LE,DECIMAL(M,D)安全
字符型: CHAR,VARCHAR服務器
日期型: DA TETIME,DA TE,TIMESTA MP函數
備註型: TINYTEXT,TEXT,LONGTEXT
1)顯示當前存在的數據庫
SHOWDATABASES;
2)選擇你所須要的數據庫
USEguest;
3)查看當前所選擇的數據庫
SELECTDATABASE();
4)查看一張表的全部內容
SELECT*FROMguest; //能夠先經過SHOWTABLES;來查看有多少張表
5)根據數據庫設置中文編碼
SET NAMESgbk; //set names utf8;
6)建立一個數據庫
CREATEDATABASEbook;
7)在數據庫裏建立一張表
CREATETABLEusers ( >username VARCHAR(20),//NOT NULL 設置不容許爲空 >sex CHAR(1), >birth DATETIME);
8)顯示錶的結構
DESCIRBEusers;
9)給表插入一條數據
INSERT INTO users (username,sex,birth) VALUES('jack','male',NOW());
3.一、鏈接數據庫
<?php
header('COntent-Type:text/html;charset=utf-8');//設置頁面編碼,若是文件是gbk編碼,則charset也應用gbk
//@表示若是出錯了,不要報錯,直接忽略
//參數:服務器地址,用戶名和密碼
echo (!!@mysql_connect('localhost','root','*****'));//1
?>
咱們用雙感嘆號!!來將資源句柄轉換成布爾值,正確輸出1,錯誤則輸出錯誤信息。而若是前面加了@符號 ,則忽略錯誤信息,不會輸出錯誤信息。
對於錯誤消息的處理,咱們可使用mysql_error()函數來輸出錯誤消息:
mysql_connect('localhost','root','****') or die('數據庫鏈接失敗,錯誤信息:'.mysql_error());//對於密碼錯誤的提示:數據庫鏈接失敗,錯誤信息:Access denied for user 'root'@'localhost' (using password: YES)
die()函數輸出一條消息,並退出當前腳本。該函數是exit()函數的別名。
數據庫鏈接參數,能夠用常量來存儲,這樣就不能被隨意修改,更加安全。
<meta charset="utf-8">
<?php
//定義常量參數
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PWD','345823');//密碼
$connect = mysql_connect(DB_HOST,DB_USER,DB_PWD) or die('數據庫鏈接失敗,錯誤信息:'.mysql_error());
echo $connect;//Resource id #2
?>
值得注意的是,mysql_connect()括號內的常量可不能加引號,不然確定出錯。
<?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PWD','345823');//密碼
define('DB_NAME','trigkit');//在phpmyadmin建立一個名爲trigkit的數據庫
//鏈接數據庫
$connect = mysql_connect(DB_HOST,DB_USER,DB_PWD) or die('數據庫鏈接失敗,錯誤信息:'.mysql_error());
//選擇指定數據庫
mysql_select_db(DB_NAME,$connect) or die('數據庫鏈接錯誤,錯誤信息:'.mysql_error());//將表名字故意寫錯,提示的錯誤信息:數據庫鏈接錯誤,錯誤信息:Unknown database 'trigkt'
?>
一般不須要使用mysql_close(),由於已打開的非持久鏈接會在腳本執行完畢後自動關閉
mysql_select_db(database,connection):選擇MySQL數據庫
<meta charset="utf-8">
<?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PWD','345823');//密碼
define('DB_NAME','trigkit');
//鏈接數據庫
$connect = mysql_connect(DB_HOST,DB_USER,DB_PWD) or die('數據庫鏈接失敗,錯誤信息:'.mysql_error());
//選擇指定數據庫
mysql_select_db(DB_NAME,$connect) or die('數據錶鏈接錯誤,錯誤信息:'.mysql_error());
//從數據庫裏把表的數據提出來(獲取記錄集)
$query = "SELECT * FROM class";//在trigkit數據庫中新建一張'表'
$result = mysql_query($query) or die('SQL錯誤,錯誤信息:'.mysql_error());//故意將表名寫錯:SQL錯誤,錯誤信息:Table 'trigkit.clas' doesn't exist
?>
mysql_query()函數執行一條MySQL查詢。
<meta charset="utf-8">
<?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PWD','345823');//密碼
define('DB_NAME','trigkit');
//鏈接數據庫
$connect = mysql_connect(DB_HOST,DB_USER,DB_PWD) or die('數據庫鏈接失敗,錯誤信息:'.mysql_error());
//選擇指定數據庫,設置字符集
mysql_select_db(DB_NAME,$connect) or die('數據錶鏈接錯誤,錯誤信息:'.mysql_error());
mysql_query('SET NAMES UTF8') or die('字符集設置出錯'.mysql_error());
//從數據庫裏把表的數據提出來(獲取記錄集)
$query = "SELECT * FROM class";
$result = mysql_query($query) or die('SQL錯誤,錯誤信息:'.mysql_error());
print_r(mysql_fetch_array($result,MYSQL_ASSOC));
?>
釋放結果集資源(僅須要在考慮到返回很大的結果集時會佔用多少內存時調用。)
<?php mysql_free_result($result);?>
<?php
require 'index.php';
//新增數據
$query = "INSERT INTO CLASS(
name,
email,
point,
regdate)
VALUES (
'小明',
'xiaoming@163.com',
100,
NOW()
)";
@mysql_query($query) or die('新增錯誤:'.mysql_error());
?>
咱們將上面的代碼保存爲index.php,丟進/Applications/MAMP/htdocs/文件夾。將上面的代碼保存爲demo.php,放進一樣的目錄內。Mac系統獲取文件的路徑很簡單,只需將文件拉進終端便可顯示路徑名。
咱們假設要修改的數據的名稱是小明,id爲2,將他的point分數修改成80分,代碼以下:
<?php
require 'index.php';
//修改數據
$query = 'UPDATE class SET point=80 WHERE id=2';
@mysql_query($query);
?>
<?php
require 'index.php';
//刪除數據
$query = "DELETE FROM class WHERE id=2";
@mysql_query($query);
mysql_close();
?>
<?php
require 'index.php';
//顯示數據
$query = "SELECT id,name,email,regdate FROM class";
$result = mysql_query($query) or die('sql語句錯誤:'.mysql_error());
print_r(mysql_fetch_array($result));
mysql_close();
?>
或者顯示指定值數據:
$data = mysql_fetch_array($result);echo $data['email'];//顯示emailecho $data['name'];//顯示name
mysql_fetch_lengths(): 取得結果集中每一個輸出的長度
mysql_field_name(): 取得結果中指定字段的字段名
mysql _fetch_row():從結果集中取得一行做爲枚舉數組
mysql_fetch_assoc(): 從結果集中取得一行做爲關聯數組
mysql_fetch_array(): 從結果集中取得一行做爲關聯數組,或數字數組,或兩者兼有
mysql_num_rows(): 取得結果集中行的數目
mysql_num_fields():取得結果集中字段的數目
mysql_get_client_info(): 取得 MySQL 客戶端信息
mysql_get_host_info(): 取得 MySQL 主機信息
mysql_get_proto_info(): 取得 MySQL 協議信息
mysql_get_server_info(): 取得 MySQL 服務器信息