文档章节

PHP与mysql基础的一系列操作

Yomut
 Yomut
发布于 2015/11/30 11:04
字数 1601
阅读 15
收藏 1

二、数据库基本操作

1)用户的 Web 浏览器发出 HTTP 请求,请求特定 Web 页面。


2)Web服务器收到.php 的请求获取该文件,并将它传到 PHP 引擎,要求它处理。


3)PHP 引擎开始解析脚本。 脚本中有一条连接数据库的命令, 还有执行一个查询的令。命PHP 打开通向 MYSQL 数据库的连接,发送适当的查询。


4)MYSQL 服务器接收数据库查询并处理。将结果返回到 PHP 引擎。


5)PHP 以你去哪干完成脚本运行,通常,这包括将查询结果格式化成 HTML 格式。然后再输出 HTML 返回到 Web 服务器。


6)Web服务器将 HTML 发送到浏览器。


2.1、MySQL 常用数据类型

整数型: TINYINT,SMALLINT,INT,BIGINT

浮点型: FLOA T,DOUB LE,DECIMAL(M,D)

字符型: CHAR,VARCHAR

日期型: DA TETIME,DA TE,TIMESTA MP

备注型: TINYTEXT,TEXT,LONGTEXT


2.2、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数据库

3.1、连接数据库

<?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()括号内的常量可不能加引号,否则肯定出错。


3.2、选择指定的数据库

<?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数据库


3.3、获取记录集

<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查询。


3.4、输出数据

<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);?>

四、增删改查

4.1、新增数据

<?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系统获取文件的路径很简单,只需将文件拉进终端即可显示路径名。


4.2、修改数据


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

<?php

  require 'index.php';


  //修改数据

  $query = 'UPDATE class SET point=80 WHERE id=2';

  @mysql_query($query);

?>


4.3、删除数据

<?php

  require 'index.php';


  //删除数据

  $query = "DELETE FROM class WHERE id=2";

  @mysql_query($query);


  mysql_close();

?>


4.4、显示数据

<?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'];//显示emailecho $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 服务器信息


© 著作权归作者所有

Yomut
粉丝 19
博文 191
码字总数 167789
作品 0
厦门
后端工程师
私信 提问
编译安装openresty+mariadb+php7

1.准备 1.更新系统 yum makecache && yum -y update 2.安装常用基础软件 yum -y install bash-completion vim net-tools bind-utils wget screen 最后别忘了重启 3.需要下载的源码 1.openre......

adbug
2016/02/20
200
0
PHP开发程序员的学习路线

兄弟连PHP培训,简单为大家梳理了每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标。 第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟练(核心是安装配置基本操...

xdl刘涛
2016/08/11
23
0
PHP职业规划

PHP职业规划 初级PHP程序员 需要掌握知识点: HTML 熟练 CSS 熟练 Javascript 基础 jQuery 基础 SQL 基础 PHP 熟练 职业要求 能够独立进行网页制作与排版 能够制作简单的前端效果 或 将前端效...

染墨青衿
2014/12/22
6
0
用WordPress搭建个人博客网站

一直想做搭建一个个人的博客网站,近日终于完成,效果如下: 接下来就是慢慢完善它啦! 下面就介绍一下怎么搭建: 首先,你得有云服务器:https://cloud.tencent.com/act/free?fromSource=g...

Viljw
2018/01/09
0
0
【Centos】在nginx服务器中配置php和mysql

接上一章《【Centos】利用Vultr服务器和namesilo布网》(https://my.oschina.net/u/3776619/blog/2051986),在Centos中配置好nginx,并在iptables中开启了80端口,和为了远程mysql操作方便开...

yongh701
2018/09/24
51
0

没有更多内容

加载失败,请刷新页面

加载更多

当阿里云工程师回到了家乡......

根据真实故事改编 略有浮夸 但重要的是 9月25日13:30-16:30 云栖大会「5G边缘计算专场」 一定要来哦 !!! 本文作者:樰篱 原文链接 本文为云栖社区原创内容,未经允许不得转载。...

Mr_zebra
27分钟前
7
0
文件操作工具类 FileUtils常用方法

文件操作工具类(FileUtils) 使用该工具类的前提是项目里导入commons-io 包 import org.apache.commons.io.FileUtils; List<String> lines=new ArrayList<String>(); lines.add("欢迎访问:......

AndLong
33分钟前
5
0
maven-shade-plugin

最近,用规则引擎(drools)的封装了一个jar包,给别人使用。用的是maven-assembly-plugin打的包,可以把多个jar包里的class 给打成一个jar,感觉还是满好用的,但是打包成功后,发现报空指针错...

internetafei
38分钟前
5
0
Cassandra repair 工具使用

前言 Cassandra是一款去中心化的分布式数据库。一份数据会分布在多个对等的节点上,即有多个副本。我们需要定期的对多个副本检查,看是否有不一致的情况。比如因为磁盘损坏,可能会导致副本丢...

阿里云官方博客
41分钟前
5
0
element-vue使用富文本编辑器【前端】

一、前言 1.富文本编辑器选择的为vue-quill-editor 官方地址:https://quilljs.com/docs/quickstart/ 2.安装 cnpm install vue-quill-editor cnpm install quill 3.在对应的页面引入,在com...

一代码农码一代
47分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部