一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Mysql - Mac OS下PHP環(huán)境搭建及PHP操作MySQL常用方法小結(jié)

Mac OS下PHP環(huán)境搭建及PHP操作MySQL常用方法小結(jié)

2020-06-09 18:09trigkit4 Mysql

MAMP從名字上也可以看出來,是Mac OS的Apache+MySQL+PHP的集成環(huán)境包,本文就來簡單說一下Mac OS下PHP環(huán)境搭建及PHP操作MySQL的常用方法小結(jié).

Mac本地環(huán)境搭建
在Mac系統(tǒng),我們可以使用MAMP Pro (官方網(wǎng)站:https://www.mamp.info/en/)軟件來搭建本地服務(wù)器。安裝好這款軟件,網(wǎng)站的目錄在 /Applications/MAMP/htdocs 文件夾里,只需將文件放入該文件夾中,就可以通過http://localhost:8888來訪問了,或者通過點(diǎn)擊如下紅色下劃線按鈕來快速訪問站點(diǎn)。

Mac OS下PHP環(huán)境搭建及PHP操作MySQL常用方法小結(jié)

mac系統(tǒng)下安裝php,兩行即可。

?
1
2
brew tap josegonzalez/homebrew-php
brew install php54

安裝完后配置一下,你就可以使用phpstorm來愉快地編程啦。安裝的php路徑在/usr/local/bin/php

數(shù)據(jù)庫基本操作

Mac OS下PHP環(huán)境搭建及PHP操作MySQL常用方法小結(jié)

1)用戶的 Web 瀏覽器發(fā)出 HTTP 請求,請求特定 Web 頁面。
2)Web服務(wù)器收到.php 的請求獲取該文件,并將它傳到 PHP 引擎,要求它處理。 3)PHP 引擎開始解析腳本。 腳本中有一條連接數(shù)據(jù)庫的命令, 還有執(zhí)行一個查詢的令。命
PHP 打開通向 MYSQL 數(shù)據(jù)庫的連接,發(fā)送適當(dāng)?shù)牟樵儭?br /> 4)MYSQL 服務(wù)器接收數(shù)據(jù)庫查詢并處理。將結(jié)果返回到 PHP 引擎。
5)PHP 以你去哪干完成腳本運(yùn)行,通常,這包括將查詢結(jié)果格式化成 HTML 格式。然
后再輸出 HTML 返回到 Web 服務(wù)器。
6)Web服務(wù)器將 HTML 發(fā)送到瀏覽器。
MySQL 常用數(shù)據(jù)類型
整數(shù)型:TINYINT,SMALLINT,INT,BIGINT
浮點(diǎn)型:FLOA T,DOUB LE,DECIMAL(M,D)
字符型:CHAR,VARCHAR
日期型:DA TETIME,DA TE,TIMESTA MP
備注型:TINYTEXT,TEXT,LONGTEXT
MySQL 數(shù)據(jù)庫操作
1)顯示當(dāng)前存在的數(shù)據(jù)庫

?
1
>SHOWDATABASES;

2)選擇你所需要的數(shù)據(jù)庫

?
1
>USEguest;

3)查看當(dāng)前所選擇的數(shù)據(jù)庫

?
1
>SELECTDATABASE();

4)查看一張表的所有內(nèi)容

?
1
>SELECT*FROMguest; //可以先通過SHOWTABLES;來查看有多少張表

5)根據(jù)數(shù)據(jù)庫設(shè)置中文編碼

?
1
>SET NAMESgbk; //set names utf8;

6)創(chuàng)建一個數(shù)據(jù)庫

?
1
>CREATEDATABASEbook;

7)在數(shù)據(jù)庫里創(chuàng)建一張表

?
1
2
3
4
>CREATETABLEusers (
>username VARCHAR(20),//NOT NULL 設(shè)置不允許為空
>sex CHAR(1),
>birth DATETIME);

8)顯示表的結(jié)構(gòu) 

?
1
>DESCIRBEusers;

9)給表插入一條數(shù)據(jù)

?
1
>INSERT INTO users (username,sex,birth) VALUES('jack','male',NOW());

PHP連接MySQL數(shù)據(jù)庫
連接數(shù)據(jù)庫

?
1
2
3
4
5
6
7
<?php
  header('COntent-Type:text/html;charset=utf-8');//設(shè)置頁面編碼,如果文件是gbk編碼,則charset也應(yīng)用gbk
  //@表示如果出錯了,不要報(bào)錯,直接忽略
  //參數(shù):服務(wù)器地址,用戶名和密碼
 
  echo (!!@mysql_connect('localhost','root','*****'));//1
?>

我們用雙感嘆號!!來將資源句柄轉(zhuǎn)換成布爾值,正確輸出1,錯誤則輸出錯誤信息。而如果前面加了@符號,則忽略錯誤信息,不會輸出錯誤信息。

對于錯誤消息的處理,我們可以使用mysql_error()函數(shù)來輸出錯誤消息:

mysql_connect('localhost','root','****') or die('數(shù)據(jù)庫連接失敗,錯誤信息:'.mysql_error());//對于密碼錯誤的提示:數(shù)據(jù)庫連接失敗,錯誤信息:Access denied for user 'root'@'localhost' (using password: YES)
die() 函數(shù)輸出一條消息,并退出當(dāng)前腳本。該函數(shù)是 exit() 函數(shù)的別名。

數(shù)據(jù)庫連接參數(shù),可以用常量來存儲,這樣就不能被隨意修改,更加安全。

?
1
2
3
4
5
6
7
8
9
10
11
<meta charset="utf-8">
<?php
  //定義常量參數(shù)
  define('DB_HOST','localhost');
  define('DB_USER','root');
  define('DB_PWD','345823');//密碼
 
 
  $connect = mysql_connect(DB_HOST,DB_USER,DB_PWD) or die('數(shù)據(jù)庫連接失敗,錯誤信息:'.mysql_error());
  echo $connect;//Resource id #2
?>

值得注意的是,mysql_connect()括號內(nèi)的常量可不能加引號,否則肯定出錯。

選擇指定的數(shù)據(jù)庫

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 
  define('DB_HOST','localhost');
  define('DB_USER','root');
  define('DB_PWD','345823');//密碼
  define('DB_NAME','trigkit');//在phpmyadmin創(chuàng)建一個名為trigkit的數(shù)據(jù)庫
 
  //連接數(shù)據(jù)庫
  $connect = mysql_connect(DB_HOST,DB_USER,DB_PWD) or die('數(shù)據(jù)庫連接失敗,錯誤信息:'.mysql_error());
 
  //選擇指定數(shù)據(jù)庫
  mysql_select_db(DB_NAME,$connect) or die('數(shù)據(jù)庫連接錯誤,錯誤信息:'.mysql_error());//將表名字故意寫錯,提示的錯誤信息:數(shù)據(jù)庫連接錯誤,錯誤信息:Unknown database 'trigkt'
 
?>

通常不需要使用 mysql_close(),因?yàn)橐汛蜷_的非持久連接會在腳本執(zhí)行完畢后自動關(guān)閉

mysql_select_db(database,connection):選擇MySQL數(shù)據(jù)庫
獲取記錄集

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<meta charset="utf-8">
<?php
 
  define('DB_HOST','localhost');
  define('DB_USER','root');
  define('DB_PWD','345823');//密碼
  define('DB_NAME','trigkit');
 
  //連接數(shù)據(jù)庫
  $connect = mysql_connect(DB_HOST,DB_USER,DB_PWD) or die('數(shù)據(jù)庫連接失敗,錯誤信息:'.mysql_error());
 
  //選擇指定數(shù)據(jù)庫
  mysql_select_db(DB_NAME,$connect) or die('數(shù)據(jù)表連接錯誤,錯誤信息:'.mysql_error());
 
  //從數(shù)據(jù)庫里把表的數(shù)據(jù)提出來(獲取記錄集)
  $query = "SELECT * FROM class";//在trigkit數(shù)據(jù)庫中新建一張'表'
  $result = mysql_query($query) or die('SQL錯誤,錯誤信息:'.mysql_error());//故意將表名寫錯:SQL錯誤,錯誤信息:Table 'trigkit.clas' doesn't exist
?>

mysql_query() 函數(shù)執(zhí)行一條 MySQL 查詢。

輸出數(shù)據(jù)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<meta charset="utf-8">
<?php
 
  define('DB_HOST','localhost');
  define('DB_USER','root');
  define('DB_PWD','345823');//密碼
  define('DB_NAME','trigkit');
 
  //連接數(shù)據(jù)庫
  $connect = mysql_connect(DB_HOST,DB_USER,DB_PWD) or die('數(shù)據(jù)庫連接失敗,錯誤信息:'.mysql_error());
 
  //選擇指定數(shù)據(jù)庫,設(shè)置字符集
  mysql_select_db(DB_NAME,$connect) or die('數(shù)據(jù)表連接錯誤,錯誤信息:'.mysql_error());
  mysql_query('SET NAMES UTF8') or die('字符集設(shè)置出錯'.mysql_error());
 
  //從數(shù)據(jù)庫里把表的數(shù)據(jù)提出來(獲取記錄集)
  $query = "SELECT * FROM class";
  $result = mysql_query($query) or die('SQL錯誤,錯誤信息:'.mysql_error());
 
  print_r(mysql_fetch_array($result,MYSQL_ASSOC));
?>

釋放結(jié)果集資源(僅需要在考慮到返回很大的結(jié)果集時(shí)會占用多少內(nèi)存時(shí)調(diào)用。)

?
1
2
3
<?php
  mysql_free_result($result);
?>

增刪改查
新增數(shù)據(jù)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
  require 'index.php';
  //新增數(shù)據(jù)
  $query = "INSERT INTO CLASS(
       name,
       email,
       point,
       regdate)
    VALUES (
    '小明',
    '[email protected]',
    100,
    NOW()
    )";
 
  @mysql_query($query) or die('新增錯誤:'.mysql_error());
 
?>

我們將上面的代碼保存為index.php,丟進(jìn)/Applications/MAMP/htdocs/ 文件夾。將上面的代碼保存為demo.php,放進(jìn)同樣的目錄內(nèi)。Mac系統(tǒng)獲取文件的路徑很簡單,只需將文件拉進(jìn)終端即可顯示路徑名。

修改數(shù)據(jù)
我們假設(shè)要修改的數(shù)據(jù)的名稱是小明,id為2,將他的point分?jǐn)?shù)修改為80分,代碼如下:

?
1
2
3
4
5
6
7
<?php
  require 'index.php';
 
  //修改數(shù)據(jù)
  $query = 'UPDATE class SET point=80 WHERE id=2';
  @mysql_query($query);
?>

刪除數(shù)據(jù)

?
1
2
3
4
5
6
7
8
9
<?php
  require 'index.php';
 
  //刪除數(shù)據(jù)
  $query = "DELETE FROM class WHERE id=2";
  @mysql_query($query);
 
  mysql_close();
?>

顯示數(shù)據(jù)

?
1
2
3
4
5
6
7
8
9
10
<?php
  require 'index.php';
 
  //顯示數(shù)據(jù)
  $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();
?>

或者顯示指定值數(shù)據(jù):

?
1
2
3
$data = mysql_fetch_array($result);
echo $data['email'];//顯示email
echo $data['name'];//顯示name

其他常用函數(shù)
mysql_fetch_lengths(): 取得結(jié)果集中每個輸出的長度
mysql_field_name(): 取得結(jié)果中指定字段的字段名

mysql _fetch_row():從結(jié)果集中取得一行作為枚舉數(shù)組
mysql_fetch_assoc(): 從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組
mysql_fetch_array(): 從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有

mysql_num_rows(): 取得結(jié)果集中行的數(shù)目
mysql_num_fields():取得結(jié)果集中字段的數(shù)目

mysql_get_client_info(): 取得 MySQL 客戶端信息
mysql_get_host_info(): 取得 MySQL 主機(jī)信息
mysql_get_proto_info(): 取得 MySQL 協(xié)議信息
mysql_get_server_info(): 取得 MySQL 服務(wù)器信息

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 好姑娘在线视频观看免费 | 俄罗斯妈妈k8影院在线观看 | 国产播放啪视频免费视频 | 欧美大奶艳星 | 色聚网久久综合 | 精品久久久噜噜噜久久久app | 男女刺激高清视频在线观看 | 日本一卡二卡3卡四卡无卡网址 | 99re这里只有精品视频 | 欧美高清无砖专区欧美精品 | 特级一级全黄毛片免费 | spank日本网站脱裤子打屁股 | 九九精品国产兔费观看久久 | 久久久久久久电影 | 亚洲精品一区二区三区在线看 | 亚洲久草 | 男人都懂www深夜免费网站 | 男同桌扒开女同桌胸罩喝奶 | 国产成人综合一区精品 | uoco福利姬| 日韩影院在线观看 | 午夜片无码区在线观看 | 国产精品污双胞胎在线观看 | 精品久久久久久国产 | 欧美成人aletta ocean | 国产午夜亚洲精品理论片不卡 | 国产高清好大好夹受不了了 | 国产一级片在线 | 欧美日韩一区二区三区久久 | 关晓彤被调教出奶水 | 蜜桃久久久亚洲精品成人 | 舔逼| 日韩伦理在线观看 | 天天干夜夜噜 | 亚洲国产精品福利片在线观看 | 美女沟厕撒尿全过程高清图片 | 亚洲高清一区二区三区四区 | 色综合久久天天综合 | 亚洲a图 | 乌克兰成人性色生活片 | 亚洲国产精久久久久久久 |