Mac环境下php操作mysql数据库的方法分享


Posted in PHP onMay 11, 2015

Mac本地环境搭建

在Mac系统,我们可以使用MAMP Pro 软件来搭建本地服务器。安装好这款软件,网站的目录在 /Applications/MAMP/htdocs 文件夹里,只需将文件放入该文件夹中,就可以通过http://localhost:8888来访问了,或者通过点击如下红色下划线按钮来快速访问站点。

Mac环境下php操作mysql数据库的方法分享

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

brew tap josegonzalez/homebrew-php
brew install php54

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

数据库基本操作

Mac环境下php操作mysql数据库的方法分享

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 (
    '小明',
    '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'];//显示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 服务器信息

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
PHP默认安装产生系统漏洞
Oct 09 PHP
php模板之Phpbean的目录结构
Jan 10 PHP
php Smarty date_format [格式化时间日期]
Mar 15 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
Feb 21 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
基于simple_html_dom的使用小结
Jul 01 PHP
php 常用算法和时间复杂度
Jul 01 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
PHP设计模式之装饰者模式代码实例
May 11 #PHP
PHP超牛逼无限极分类生成树方法
May 11 #PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
May 11 #PHP
PHP获取当前日期和时间及格式化方法参数
May 11 #PHP
PHP借助phpmailer发送邮件
May 11 #PHP
PHP date函数常用时间处理方法
May 11 #PHP
护卫神php套件 php版本升级方法(php5.5.24)
May 10 #PHP
You might like
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
深入理解PHP之require/include顺序 推荐
2011/01/02 PHP
PHP中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
解决Vue打包上线之后部分CSS不生效的问题
2019/11/12 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
Python实现简单网页图片抓取完整代码实例
2017/12/15 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
python实现windows下文件备份脚本
2018/05/27 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
python圣诞树编写实例详解
2020/02/13 Python
Python 解析pymysql模块操作数据库的方法
2020/02/18 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
酒吧总经理岗位职责
2013/12/10 职场文书
入党积极分子思想汇报
2014/01/02 职场文书
大学生饮食配送创业计划书
2014/01/04 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
Golang 结构体数据集合
2022/04/22 Golang