Mac
系统默认集成了不少开发工具,其中就包括 php
所须要的一些软件工具.php
下面咱们将搭建最简单的 php
开发环境,每一步都会验证上一步的操做结构,请一步一步跟我一块儿搭建吧!html
web
服务器之 apache
apache
是一款 web
服务器,用于运行 php
文件,除了 apache
外也能够是 nginx
服务器.mysql
默认状况下
mac
已经预装了apach
服务,天然不用nginx
服务器了.nginx
如今什么也没有配置的状况下,直接启动 apache
服务器看一下可否正常运行.git
$ sudo apachectl start
经常使用命令
- 查看
apache
版本
语法:
apachectl -v
github
示例:web
$ apachectl -v Server version: Apache/2.4.34 (Unix) Server built: Feb 22 2019 19:30:04
- 启动
apache
服务
语法:
sudo apachectl start
sql
示例:数据库
$ sudo apachectl start Password:
- 中止
apache
服务
语法:
sudo apachectl stop
macos
示例:
$ sudo apachectl stop
- 重启
apache
服务
语法:
sudo apachectl restart
示例:
$ sudo apachectl restart
安装路径
apache
默认安装于/private/etc/apache2
目录,属于系统隐藏目录,能够在终端中直接进入也能够在访达中直接前往文件夹.
示例:
$ tree /private/etc/apache2 /private/etc/apache2 ├── extra │ ├── httpd-autoindex.conf │ ├── httpd-autoindex.conf~previous │ ├── httpd-dav.conf │ ├── httpd-dav.conf~previous │ ├── httpd-default.conf ├── httpd.conf ├── httpd.conf.pre-update ├── httpd.conf~previous ├── magic ├── mime.types ├── original │ ├── extra │ │ ├── httpd-autoindex.conf │ │ ├── httpd-dav.conf │ │ ├── httpd-default.conf │ │ ├── httpd-vhosts.conf │ │ └── proxy-html.conf │ └── httpd.conf ├── other │ └── php7.conf └── users └── Guest.conf 5 directories, 43 files
若是想要修改项目部署路径以及服务器端口等自定义配置,可打开 /private/etc/apache2/httpd.conf
文件进行编辑,若是权限不足,要么提高权限要么复制到别处修改好再替换掉原来的配置文件.
配置文件一旦修改,请必定要重启服务器,否则并不会生效!
vim
搜索文件内容时临时高亮设置::set hlsearch
,取消高亮设置::set nohlsearch
.
- 修改项目部署路径
DocumentRoot
: 默认部署路径于/Library/WebServer/Documents
终端输入 vim
命令查找并编辑目标节点.
$ vim /private/etc/apache2/httpd.conf
输入
vim /private/etc/apache2/httpd.conf
进入命令行模式,输入:/DocumentRoot
从头搜索文件内容,紧接着输入n
表示查找下一项匹配字符,N
表示查找上一项匹配内容.
若是不熟悉
vim
语法也能够选择熟悉的编辑器打开httpd.conf
配置文件进行修改配置.
- 修改项目部署端口
Listen
: 默认监听端口 80
若是端口冲突的话,能够修改为其余端口,80 端口的好处在于能够直接访问服务器地址而不用显示带上端口号.
# 等价于 http://localhost:80 http://localhost # 等价于 http://127.0.0.1:80 http://127.0.0.1
部署路径
默认状况下,apache
的部署路径位于 /Library/WebServer/Documents
,除非你更改了 httpd.conf#DocumentRoot
的节点配置.
$ tree /Library/WebServer/Documents /Library/WebServer/Documents ├── PoweredByMacOSX.gif ├── PoweredByMacOSXLarge.gif ├── index.html.en └── index.html.en~orig 0 directories, 4 files
固然你能够经过访达直接前往 /Library/WebServer/Documents
目录或者 open /Library/WebServer/Documents
直接调用内置程序打开目录.
若是非要一步一步找到部署路径,打开 访达 后选择左侧最下方的本地光盘(我的用户名称),而后依次选择
Machintosh HD > 资源库 (Library) > WebServer > Documents
世界上最好的语言之 php
php
在行业内赢得"世界上最好的语言"称号,自嘲为"拍簧片".无论怎样,既然咱们决定 pai(拍)huang(簧)pian(片)
,那总要配置一下 php
的基本环境吧!
Mac
系统一如既往内置了 php
环境,不用咱们费心去安装 php
了,如今看一下 php
的基本信息吧!
$ php -version PHP 7.1.23 (cli) (built: Feb 22 2019 22:08:13) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
php
是一种服务端脚本解释性语言,依赖于 web
服务器进行解析,因此 php
想要正常工做离不开上一步配置的 apache
服务器.
还记得 apache
配置文件的位置吗?
apache
配置文件路径 :/private/etc/apache2/httpd.conf
打开
httpd.conf
配置文件并搜索LoadModule php
字符串,将前面的#
去掉便可引入php
支持,配置文件修改后记得重启才能生效哟!
是时候展现真正的技术了,如今万事俱备只待测试 php
到底有没有配置成功?!
在项目部署根目录下新建 info.php
测试文件,启动服务器后访问 http://localhost/info.php 若是能正常打印出 php
相关信息,那就证实 php
和 apache
整合无误,不然多是某一步配置有误!
<?php phpinfo(); ?>
持久化存储之 mysql
数
Mac
系统并无默认安装 mysql
服务,所以咱们须要手动安装 mysql
.
通常来讲,咱们谈到 mysql
数据库指的是 mysql
的服务端,做为生产环境服务端足够了并不须要客户端.
可是,平常开发中若是没有客户端咱们很难直观管理数据,因此通常来讲,咱们还会安装 mysql
客户端,固然通常是各类功能强大的图形化工具.
mysql
服务端
和正常的软件安装同样,将安装文件移动到应用里便可完成,比 Windows
的下一步下一步安装还要方便快捷!
安装完成后,能够在系统偏好设置中找到 MySQL
图标,查看管理 mysql
服务端.
点击 MySQL
图标,能够进行简单的设置以及重启服务等操做.
可是若是想要在终端中无痛链接上 mysql
服务端,那么还须要一步设置软连接,相似于 Windows
的快捷方式.
$ sudo ln -fs /usr/local/mysql/bin/mysql /usr/local/bin/mysql
如今咱们就能够在终端内愉快的链接上 mysql
服务端了呢!
# 登陆 `mysql` 服务端 $ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 29 Server version: 5.7.24 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. # 查看当前数据库列表 mysql> show databases; +---------------------+ | Database | +---------------------+ | information_schema | | mysql | | performance_schema | | security-plus | | sys | | test | +---------------------+ 6 rows in set (0.00 sec) # 退出当前数据库会话 mysql> exit Bye $
- 查看
mysql
服务端版本
语法:
mysql --version
示例:
$ mysql --version mysql Ver 14.14 Distrib 5.7.24, for macos10.14 (x86_64) using EditLine wrapper
- 查看
mysql
服务端状态
语法:
sudo /usr/local/mysql/support-files/mysql.server status
示例:
$ sudo /usr/local/mysql/support-files/mysql.server status SUCCESS! MySQL running (73088)
- 启动
mysql
服务端
语法:
sudo /usr/local/mysql/support-files/mysql.server start
示例:
$ sudo /usr/local/mysql/support-files/mysql.server start Starting MySQL . SUCCESS!
- 中止
mysql
服务端
语法:
sudo /usr/local/mysql/support-files/mysql.server stop
示例:
$ sudo /usr/local/mysql/support-files/mysql.server stop Shutting down MySQL .. SUCCESS!
- 重启
mysql
服务端
语法:
sudo /usr/local/mysql/support-files/mysql.server restart
示例:
$ sudo /usr/local/mysql/support-files/mysql.server restart Shutting down MySQL . SUCCESS! Starting MySQL . SUCCESS!
mysql
客户端
若是说生产环境没有 mysql
的图形化工具也就罢了,可是若是平常开发时也不没有图形化工具的话,那就真的太不方便了.
这里推荐两个客户端工具,一个是人畜无害的 Sequel Pro
,另外一个则是 php
专属的 phpMyAdmin
.
BS
架构的phpMyAdmin
下载地址 : phpMyAdmin
phpMyAdmin
是一款 web
版数据款管理软件,能够在浏览器中在线访问,像访问你的网站同样访问数据库.
下载完成后解压并重命名为 phpMyAdmin
,而后移动到 apache
的项目部署路径下,若是没有更改过默认的部署路径,那么应该是 /Library/WebServer/Documents
目录.
如今部署路径下不只有个 info.php
文件还有 phpMyAdmin
文件夹.
# 仅仅显示两级文件目录 $ tree -L 2 . ├── PoweredByMacOSX.gif ├── PoweredByMacOSXLarge.gif ├── index.html.en ├── index.html.en~orig ├── info.php └── phpMyAdmin ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── export.php ├── favicon.ico ├── gis_data_editor.php ├── import.php ├── import_status.php ├── index.php ├── view_operations.php └── yarn.lock 11 directories, 108 files
移动完成后先复制一份 config.sample.inc.php
文件并重命名为 config.inc.php
文件.
执行 vim /Library/WebServer/Documents/phpMyAdmin/config.inc.php
搜索并编辑 host
节点内容,将 localhost
更改为 127.0.0.1
.
示例:
# 修改前 $cfg['Servers'][$i]['host'] = 'localhost'; # 修改后: 将 `localhost` 更改为 `127.0.0.1` $cfg['Servers'][$i]['host'] = '127.0.0.1';
重启 apache
服务,访问 http://localhost/phpMyAdmin/ 开始登录数据库吧!
输入 mysql
的用户名和密码登陆成功后就能管理本地数据库了.
CS
架构的Sequel Pro
下载地址 : v1.1.2 OS X 10.6 or Higher
Sequel Pro
是简单易用的数据库管理工具,与上述的 phpMyAdmin
不一样之处在于并不依赖 php
环境,能够独立安装部署.
安装完成后输入数据库链接信息链接到本地数据库,参考信息以下.
点击链接(Connect
) 链接到本地服务器,因为刚才并无选择数据库,所以登录后须要选定数据库,这里根据实际状况选择便可.
php
集成 mysql
若是没有数据库提供持久化存储能力,那么 php
只能临时运行而没有记忆功能,因此想要记住网站大量信息天然离不开数据库.
准备数据
为了接下来演示 php
集成 mysql
数据库,如今先建立一个测试数据库并插入一些测试数据.
下面主要是经过终端方式进行操做,小伙伴们也可使用上述安装的图形化工具进行可视化编辑.
- 链接到本地服务器
语法 :
mysql -u <username> -p
示例:
# 链接到本地数据库,用户名 `root`,密码自定义 $ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 109 Server version: 5.7.24 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- 列出当前数据库列表
语法 :
show databases
示例:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | security-plus | | sys | +--------------------+ 5 rows in set (0.00 sec)
- 建立测试数据库
语法 :
create database <databaseName>
示例:
# 建立 `test` 数据库并指定编码格式为 `utf8` mysql> create database IF NOT EXISTS test default charset utf8 COLLATE utf8_general_ci; Query OK, 1 row affected (0.00 sec) # 再次查询当前数据库列表,新增 `test` 数据库 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | security-plus | | sys | | test | +--------------------+ 6 rows in set (0.00 sec)
- 列出当前数据表列表
语法 :
show tables
示例:
# 使用 `test` 测试数据库 mysql> use test; Database changed # 列出当前所有数据表 mysql> show tables; Empty set (0.00 sec)
- 建立测试数据表
语法 :
create tabel <tableName> (<fieldName> <type>))
# 建立 `user` 用户表 mysql> CREATE TABLE `test`.`user` ( `id` BIGINT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户 id', `name` VARCHAR(45) NOT NULL DEFAULT '' COMMENT '姓名', PRIMARY KEY (`id`), UNIQUE INDEX `id_UNIQUE` (`id` ASC)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COMMENT = '用户表'; Query OK, 0 rows affected (0.01 sec) # 再次列出当前数据表列表 mysql> show tables; +----------------+ | Tables_in_test | +----------------+ | user | +----------------+ 1 row in set (0.00 sec)
- 查看数据表结构
语法 :
desc <tableName>
示例:
mysql> desc user; +-------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------------+------+-----+---------+----------------+ | id | bigint(11) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(45) | NO | | | | +-------+---------------------+------+-----+---------+----------------+ 2 rows in set (0.00 sec)
- 查看数据表建立语句
语法 :
show create table <tableName>
示例:
mysql> show create table user \G *************************** 1. row *************************** Table: user Create Table: CREATE TABLE `user` ( `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户 id', `name` varchar(45) NOT NULL DEFAULT '' COMMENT '姓名', PRIMARY KEY (`id`), UNIQUE KEY `id_UNIQUE` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表' 1 row in set (0.00 sec)
- 查询数据
语法 :
select [fields] from tableName [where condition] [limit N][ offset M]
示例:
mysql> select id,name from user; Empty set (0.00 sec)
- 插入数据
语法 :
insert into <tableName> ([fields]) VALUES ([values])
示例:
mysql> INSERT INTO `test`.`user` (`name`) VALUES ('snowdreams1006'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO `test`.`user` (`name`) VALUES ('雪之梦技术驿站'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO `test`.`user` (`name`) VALUES ('测试用户姓名'); Query OK, 1 row affected (0.00 sec) mysql> select id,name from user; +----+-----------------------+ | id | name | +----+-----------------------+ | 1 | snowdreams1006 | | 2 | 雪之梦技术驿站 | | 3 | 测试用户姓名 | +----+-----------------------+ 3 rows in set (0.00 sec)
- 退出数据库
语法 :
exit
示例:
mysql> exit Bye $
- 导出数据
语法 :
mysqldump -u <username> -p <databaseName> > exportName.sql
备份数据用到的是 mysqldump
工具,默认状况下该命令位于 /usr/local/mysql/bin
目录下,正常状况下须要指定该路径才能调用 mysqldump
命令.
$ tree /usr/local/mysql/bin /usr/local/mysql/bin ├── innochecksum ├── lz4_decompress ├── my_print_defaults ├── myisam_ftdump ├── myisamchk ├── mysql ├── mysql_client_test_embedded ├── mysql_config ├── mysqlbinlog ├── mysqlcheck ├── mysqld ├── mysqld-debug ├── mysqld_multi ├── mysqld_safe ├── mysqldump ├── resolveip └── zlib_decompress 0 directories, 38 files
因此,应该是以下命令才能调用 mysqldump
命令.
$ /usr/local/mysql/bin/mysqldump --version mysqldump Ver 10.13 Distrib 5.7.24, for macos10.14 (x86_64)
不过这也太长了吧,确定不是很不变,一劳永逸的方法是将 /usr/local/mysql/bin
加入到环境变量中就不用添加额外的路径信息了.
还记得 mysql
服务端刚安装完毕,咱们想要经过终端链接到本地数据库服务器时设置了 mysql
的软连接,因此才能直接使用 mysql -u root -p
进行登陆.
mac
的软连接方式至关于 windows
系统的快捷方式,只针对具体命令,如今须要 mysqldump
命令,继续使用软连接还要添加相似的快捷方式.
$ sudo ln -fs /usr/local/mysql/bin/mysql /usr/local/bin/mysql $ sudo ln -fs /usr/local/mysql/bin/mysqldump /usr/local/bin/mysqldump
实测可用,可是这并非优雅的操做方式,/usr/local/mysql/bin/
目录下那么多命令,下次须要用到其余命令岂不是要设置不少软连接?
$ mysqldump --version mysqldump Ver 10.13 Distrib 5.7.24, for macos10.14 (x86_64)
因此,如今咱们考虑将 /usr/local/mysql/bin
加入到系统环境变量中,这样一来就能一劳永逸不用频繁设置软连接了!
# mysql export PATH=$PATH:/usr/local/mysql/bin
设置完毕后下次重启电脑就会生效,或者运行下述命令当即生效.
$ source ~/.bash_profile
为了测试环境变量是否生效,咱们先删除原来的软连接.
$ rm -rf /usr/local/bin/mysql $ rm -rf /usr/local/bin/mysqldump
依然可以正常调用 mysql
相关命令.
# `mysql` 版本信息 $ mysql --version mysql Ver 14.14 Distrib 5.7.24, for macos10.14 (x86_64) using EditLine wrapper # `mysqldump` 版本信息 $ mysqldump --version mysqldump Ver 10.13 Distrib 5.7.24, for macos10.14 (x86_64)
示例:
$ mysqldump -u root -p test > database_test.sql; Enter password: $
注意 :
mysqldump
和mysql
相互独立的命令行程序,并非在mysql
会话中执行的sql
. 查看当前备份文件内容:
# 备份文件位于当前目录 $ cat $(pwd)/database_test.sql
备份 sql
文件内容,能够直接复制执行.
-- MySQL dump 10.13 Distrib 5.7.24, for macos10.14 (x86_64) -- -- Host: localhost Database: test -- ------------------------------------------------------ -- Server version 5.7.24 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `user` -- DROP TABLE IF EXISTS `user`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `user` ( `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户 id', `name` varchar(45) NOT NULL DEFAULT '' COMMENT '姓名', PRIMARY KEY (`id`), UNIQUE KEY `id_UNIQUE` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='用户表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `user` -- LOCK TABLES `user` WRITE; /*!40000 ALTER TABLE `user` DISABLE KEYS */; INSERT INTO `user` VALUES (1,'snowdreams1006'),(2,'雪之梦技术驿站'),(3,'测试用户姓名'); /*!40000 ALTER TABLE `user` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2019-05-19 12:49:35
- 导入数据
语法 :
source <mysqldump.sql>
示例:
# 建立 `test_import` 数据库 mysql> create database test_import; # 使用 `test_import` 数据库 mysql> use test_import; # 导入 `database_test.sql` 文件 mysql> source /Users/sunpo/Documents/workspace/snowdreams1006.github.io/database_test.sql
- 删除数据库
语法 :
drop database <databaseName>
示例:
mysql> drop database test_import; Query OK, 1 row affected (0.01 sec)
编程链接
若是没有更改过项目的部署路径,那么咱们以前有个测试 php
环境的文件,即 /Library/WebServer/Documents/info.php
,如今咱们继续编写该文件,经过编码的方式链接到 mysql
数据库.
<?php $username="root"; $userpass="root"; $dbhost="127.0.0.1"; $dbdatabase="test"; // 链接到本地服务器 $db=new mysqli($dbhost,$username,$userpass,$dbdatabase); $db->set_charset("utf8"); if(mysqli_connect_error()){ echo "链接失败: " . mysqli_connect_error(); exit; } # 查询用户列表 $result = $db->query("SELECT id,name FROM user"); if ($result->num_rows > 0) { // 输出数据 while($row = $result->fetch_assoc()) { echo var_dump($row). "<br>"; } } # 关闭数据库链接 $db->close(); phpinfo(); ?>
如今再次启动 apache
服务器,访问 http://localhost/info.php
测试成功!
环境搭建要点总结
apache
服务默认已安装,启动服务器后,在浏览器中访问 http://localhost/
会显示It works!,代表 apache
能正常使用.
- 查看
apache
服务器版本 :apachectl -v
- 启动
apache
服务器 :sudo apachectl start
- 中止
apache
服务器 :sudo apachectl stop
- 重启
apache
服务器 :sudo apachectl restart
apache
服务器安装路径 :/private/etc/apache2
apache
服务器部署路径 :/Library/WebServer/Documents
php
服务默认已安装,集成到 apache
服务器只须要在 /private/etc/apache2/httpd.conf
配置文件中启用 LoadModule php7_module libexec/apache2/libphp7.so
模块便可,重启 apache
服务器便可支持 php
环境.
- 查看
php
版本信息 :php -version
php
默认配置文件路径 :/private/etc/php.ini.default
mysql
数据库默认没有安装,须要手动前往 https://www.mysql.com/downloads/
官网进行下载安装.
若是须要在终端命令行内访问 mysql
服务端,最好将 mysql
的安装路径添加到系统环境中,或者添加软连接也能够.
mysql
安装路径 :/usr/local/mysql
- 系统环境变量路径 :
~/.bash_profile
mysql
二进制文件添加到系统环境变量 :export PATH=$PATH:/usr/local/mysql/bin
- 刷新系统环境变量配置 :
source ~/.bash_profile
mysql
命令添加软连接 :sudo ln -fs /usr/local/mysql/bin/mysql /usr/local/bin/mysql
- 查看
mysql
版本信息 :mysql --version
- 查看
mysql
服务器状态 :mysql.server status
- 启动
mysql
服务器 :mysql.server start
- 中止
mysql
服务器 :mysql.server stop
- 重启
mysql
服务器 :mysql.server restart
- 登陆
mysql
服务器 :mysql -u root -p
- 退出
mysql
服务器 :exit
最后,php
不只仅能够面向过程也能够面向对象,虽然是拍簧片,但真的很强大,魅力不小呢!