热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MacOS下PHP环境搭建及PHP操作MySQL常用方法小结_MySQL

MAMP从名字上也可以看出来,是MacOS的Apache+MySQL+PHP的集成环境包,本文就来简单说一下MacOS下PHP环境搭建及PHP操作MySQL的常用方法小结.
Mac本地环境搭建
在Mac系统,我们可以使用MAMP Pro (官方网站:https://www.mamp.info/en/)软件来搭建本地服务器。安装好这款软件,网站的目录在 /Applications/MAMP/htdocs 文件夹里,只需将文件放入该文件夹中,就可以通过http://localhost:8888来访问了,或者通过点击如下红色下划线按钮来快速访问站点。

2016516173410318.jpg (800×492)

mac系统下安装php,两行即可。

brew tap josegonzalez/homebrew-php
brew install php54

安装完后配置一下,你就可以使用phpstorm来愉快地编程啦。安装的php路径在/usr/local/bin/php

数据库基本操作

2016516173447802.jpg (763×105)

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数据库
连接数据库

<&#63;php
  header('COntent-Type:text/html;charset=utf-8');//设置页面编码,如果文件是gbk编码,则charset也应用gbk
  //@表示如果出错了,不要报错,直接忽略
  //参数:服务器地址,用户名和密码

  echo (!!@mysql_connect('localhost','root','*****'));//1
&#63;> 

我们用双感叹号!!来将资源句柄转换成布尔值,正确输出1,错误则输出错误信息。而如果前面加了@符号,则忽略错误信息,不会输出错误信息。

对于错误消息的处理,我们可以使用mysql_error()函数来输出错误消息:

mysql_connect('localhost','root','****') or die('数据库连接失败,错误信息:'.mysql_error());//对于密码错误的提示:数据库连接失败,错误信息:Access denied for user 'root'@'localhost' (using password: YES)
die() 函数输出一条消息,并退出当前脚本。该函数是 exit() 函数的别名。

数据库连接参数,可以用常量来存储,这样就不能被随意修改,更加安全。


<&#63;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 
&#63;> 

值得注意的是,mysql_connect()括号内的常量可不能加引号,否则肯定出错。

选择指定的数据库

<&#63;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'

&#63;> 

通常不需要使用 mysql_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭

mysql_select_db(database,connection):选择MySQL数据库
获取记录集


<&#63;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
&#63;> 

mysql_query() 函数执行一条 MySQL 查询。

输出数据


<&#63;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));
&#63;> 

释放结果集资源(仅需要在考虑到返回很大的结果集时会占用多少内存时调用。)

<&#63;php
  mysql_free_result($result); 
&#63;>

增删改查
新增数据

<&#63;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());

&#63;>

我们将上面的代码保存为index.php,丢进/Applications/MAMP/htdocs/ 文件夹。将上面的代码保存为demo.php,放进同样的目录内。Mac系统获取文件的路径很简单,只需将文件拉进终端即可显示路径名。

修改数据
我们假设要修改的数据的名称是小明,id为2,将他的point分数修改为80分,代码如下:

<&#63;php
  require 'index.php';

  //修改数据
  $query = 'UPDATE class SET point=80 WHERE id=2';
  @mysql_query($query);
&#63;>

删除数据

<&#63;php
  require 'index.php';

  //删除数据
  $query = "DELETE FROM class WHERE id=2";
  @mysql_query($query);

  mysql_close();
&#63;>

显示数据

<&#63;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();
&#63;>

或者显示指定值数据:

$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 服务器信息

推荐阅读
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 如何在Django框架中实现对象关系映射(ORM)
    本文介绍了Django框架中对象关系映射(ORM)的实现方式,通过ORM,开发者可以通过定义模型类来间接操作数据库表,从而简化数据库操作流程,提高开发效率。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • CRZ.im:一款极简的网址缩短服务及其安装指南
    本文介绍了一款名为CRZ.im的极简网址缩短服务,该服务采用PHP和SQLite开发,体积小巧,约10KB。本文还提供了详细的安装步骤,包括环境配置、域名解析及Nginx伪静态设置。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 如何将955万数据表的17秒SQL查询优化至300毫秒
    本文详细介绍了通过优化SQL查询策略,成功将一张包含955万条记录的财务流水表的查询时间从17秒缩短至300毫秒的方法。文章不仅提供了具体的SQL优化技巧,还深入探讨了背后的数据库原理。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • 在日常生活中,支付宝已成为不可或缺的支付工具之一。本文将详细介绍如何通过支付宝实现免费提现,帮助用户更好地管理个人财务,避免不必要的手续费支出。 ... [详细]
  • 解决PHP项目在服务器无法抓取远程网页内容的问题
    本文探讨了在使用PHP进行后端开发时,遇到的一个常见问题:即在本地环境中能够正常通过CURL获取远程网页内容,但在服务器上却无法实现。我们将分析可能的原因并提供解决方案。 ... [详细]
author-avatar
手机用户2502937333
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有