Mac本地環境搭建
在Mac系統,我們可以使用MAMP Pro (官方網站:https://www.mamp.info/en/)軟件來搭建本地服務器。安裝好這款軟件,網站的目錄在 /Applications/MAMP/htdocs 文件夾裡,只需將文件放入該文件夾中,就可以通過http://localhost:8888來訪問了,或者通過點擊如下紅色下劃線按鈕來快速訪問站點。
mac系統下安裝php,兩行即可。
brew tap josegonzalez/homebrew-php brew install php54
安裝完後配置一下,你就可以使用phpstorm來愉快地編程啦。安裝的php路徑在/usr/local/bin/php
數據庫基本操作
1)用戶的 Web 浏覽器發出 HTTP 請求,請求特定 Web 頁面。
2)Web服務器收到.php 的請求獲取該文件,並將它傳到 PHP 引擎,要求它處理。 3)PHP 引擎開始解析腳本。 腳本中有一條連接數據庫的命令, 還有執行一個查詢的令。命
PHP 打開通向 MYSQL 數據庫的連接,發送適當的查詢。
4)MYSQL 服務器接收數據庫查詢並處理。將結果返回到 PHP 引擎。
5)PHP 以你去哪干完成腳本運行,通常,這包括將查詢結果格式化成 HTML 格式。然
後再輸出 HTML 返回到 Web 服務器。
6)Web服務器將 HTML 發送到浏覽器。
MySQL 常用數據類型
整數型:TINYINT,SMALLINT,INT,BIGINT
浮點型:FLOA T,DOUB LE,DECIMAL(M,D)
字符型:CHAR,VARCHAR
日期型:DA TETIME,DA TE,TIMESTA MP
備注型:TINYTEXT,TEXT,LONGTEXT
MySQL 數據庫操作
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());
PHP連接MySQL數據庫
連接數據庫
<?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 ( '小明', '[email protected]', 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'];//顯示email echo $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 服務器信息