Mysql:在PHP脚本中操作MySQL数据库的的几个步骤如下:

  1、连接MySQL数据库服务器,并判断是否连接正确

  2、选择数据库,并设置字符集(可选)

  3、执行SQL命令

  4、处理结果集

  5、关闭数据库连接

连接MySQL数据库服务器,并判断是否连接正确

mysql_connect()

mysql_connect()函数用来打开一个到 MySQL 服务器的连接。如果成功则返回一个资源, 或者在失败时返回FALSE

resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )

mysql_errno()

mysql_errno()函数用于返回上一个 MySQL 操作中的错误信息的数字编码

int mysql_errno ([ resource $link_identifier ] )

mysql_error()

mysql_error()函数用于返回上一个 MySQL 操作产生的文本错误信息。如果没有指定连接资源号,则使用上一个成功打开的连接从 MySQL 服务器提取错误信息

string mysql_error ([ resource $link_identifier ] )
<?php
$link = mysql_connect('localhost','root','123456');
var_dump($link);//resource(3, mysql link)
if(!$link){
die('连接失败:'.mysql_error());
}
?>

选择数据库,并设置字符集(可选)

mysql_select_db()

mysql_select_db()函数用于选择 MySQL 数据库

bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )
<?php
$link = mysql_connect('localhost','root','zhiaihebe0123');
var_dump($link);//resource(3, mysql link)
if(!$link){
die('连接失败:'.mysql_error());
}
mysql_select_db('bookstore',$link) or die('不能选定数据库bookstore:' .mysql_error()); mysql_query('set names utf8');//设置字符集(一般不常用)
?>

执行SQL命令

mysql_query()

在PHP中,mysql_query()函数会将sql语句发送到MYSQL服务器并执行,mysql_query() 仅对 SELECT,SHOW,DESCRIBE, EXPLAIN 和其他语句返回一个resource,如果查询出现错误则返回 FALSE;对于其它类型的 SQL 语句,比如INSERT, UPDATE, DELETE, DROP 之类, mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE

mysql_affected_rows()

mysql_affected_rows()函数用于取得前一次 MySQL 操作所影响的记录行数。执行成功则返回受影响的行的数目,如果最近一次查询失败的话,函数返回 -1

var_dump(mysql_affected_rows());//int3 

通常通过判断mysql_affected_rows()函数的值是否大于0来确定数据操作是否成功

mysql_insert_id()

mysql_insert_id()函数用来取得上一步 INSERT 操作产生的 ID

<?php
$insert = "insert into books(bookname, publisher, author, price, detail) values
('PHP','电子工业出版社','张三','80.00','PHP相关'),
('ASP','电子工业出版社','李四','90.00','ASP相关'),
('JSP','电子工业出版社','王五','70.00','JSP相关')";
$result = mysql_query($insert);
if($result && mysql_affected_rows() > 0){
//刷新页面两次后,相当于插入了两次数据。页面显示数据记录插入成功,最后一条插入的数据记录id为:4
echo "数据记录插入成功,最后一条插入的数据记录id为:".mysql_insert_id()."<br>";
}else{
//若在数据表删除后,则显示数据记录插入失败,错误号:1146,错误原因:La table 'bookstore.books' n'existe pas
echo "数据记录插入失败,错误号:".mysql_errno().",错误原因:".mysql_error()."<br>";
}
?>

实际上,由于4、5、6三条语句是同时插入的,这时显示的是第一个id为4

处理结果集

在PHP脚本中执行SELECT查询命令,也是调用mysql_query()函数,但和执行DML不同的是,执行SELECT命令之后,mysql_query()函数的返回值是一个PHP资源的引用指针(结果集)。这个返回值可以在各种结果集处理函数中,对结果数据表的各个字段进行处理

mysql_num_fields()

mysql_num_fields()函数取得结果集中字段的数目

int mysql_num_fields ( resource $result )

mysql_num_rows()

mysql_num_rows()函数取得结果集中行的数目

int mysql_num_rows ( resource $result )
$result = mysql_query("SELECT * FROM books");
$rows = mysql_num_rows($result);
$cols = mysql_num_fields($result);
var_dump($rows,$cols);//int 4 int 8

mysql_fetch_row()

mysql_fetch_row()函数从结果集中取得一行作为枚举数组

array mysql_fetch_row ( resource $result )
$result = mysql_query("SELECT * FROM books");
$row = mysql_fetch_row($result);
//Array ( [0] => 1 [1] => PHP [2] => 电子工业出版社 [3] => 张三 [4] => 80.00 [5] => 0 [6] => [7] => PHP相关 )
print_r($row);
$row = mysql_fetch_row($result);
//Array ( [0] => 3 [1] => JSP [2] => 电子工业出版社 [3] => 王五 [4] => 70.00 [5] => 0 [6] => [7] => JSP相关 )
print_r($row);

mysql_fetch_assoc()

mysql_fetch_assoc()函数从结果集中取得一行作为关联数组

array mysql_fetch_assoc ( resource $result )
$result = mysql_query("SELECT * FROM books");
$assoc = mysql_fetch_assoc($result);
//Array ( [id] => 1 [bookname] => PHP [publisher] => 电子工业出版社 [author] => 张三 [price] => 80.00 [ptime] => 0 [pic] => [detail] => PHP相关 )
print_r($assoc);
$assoc = mysql_fetch_assoc($result);
//Array ( [id] => 3 [bookname] => JSP [publisher] => 电子工业出版社 [author] => 王五 [price] => 70.00 [ptime] => 0 [pic] => [detail] => JSP相关 )
print_r($assoc);

mysql_fetch_array()

mysql_fetch_array()函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有。

mysql_free_result()

mysql_free_result()函数用于释放结果内存

bool mysql_free_result ( resource $result )

mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放

关闭数据库连接

mysql_close()

mysql_close()函数用于关闭 MySQL 连接

bool mysql_close ([ resource $link_identifier = NULL ] )

mysql_close() 关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定 link_identifier,则关闭上一个打开的连接

php连接MySQL分析的更多相关文章

  1. Python 2.7_pandas连接MySQL数据处理_20161229

    在我本地Mysql_local_db数据库建立了一个pandas数据表用来对pandas模块的学习 学习过程借鉴学习蓝鲸的网站分析笔记 1.创建表 CREATE TABLE pandastest( 城 ...

  2. CentOS7 (64位) 下QT5.5 连接MySQL数据库(driver not loaded)

    用qt连接MySQL需要共享库 libqsqlmysql.so的驱动,路径在plugin/sqldrivers目录下,乍看已经可用了,其实不然. 用ldd命令分析一下,libmysqlclient_r ...

  3. linux下使用正确的用户名密码,本地无法连接mysql

    问题现象: Linux系统为CentOS 7.0 64位,通过IP远程mysql时,可以正常访问,确定账号密码没有问题.但是本地连接mysql时,提示ERROR 1045 (28000): Acces ...

  4. Ubuntu,QT5连接MySQL

    用QT连接MySQL需要共享库 libqsqlmysql.so的驱动,路径在plugin/sqldrivers目录下,乍看已经可用了,其实不然. 用ldd命令分析一下,libmysqlclient_r ...

  5. visualC/C++连接MySql数据库

    vs连接数据库其实就是将mysql数据库.h头文件接口.lib链接文件和dll执行文件加入到项目中.下面是配置如何加入. 转于http://www.cnblogs.com/justinzhang/ar ...

  6. c/c++使用VS2013连接MySQL与ubuntu下c链接mysql

    vs连接数据库事实上就是将mysql数据库.h头文件接口.lib链接文件和dll运行文件增加到项目中.以下是配置怎样增加. 转于http://www.cnblogs.com/justinzhang/a ...

  7. JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能

    主要内容:  JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十 ...

  8. 数据库~dotnetcore连接Mysql插入中文失败

    到目录 在dotnetcore里,连接mysql数据,插入中文时出现无法识别,并提示插入失败的情况,分析后得知它是编码问题,即数据库编码问题,你的中文在数据表里无法被识别! 解决方法(一) 进行mys ...

  9. SQLyog 报错2058 :连接 mysql 8.0.11 解决方法

    下载新版的 mysql 8.0.11 安装. 为了方便安装查看,我下载了sqlyog 工具 连接 mysql 配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了. 解决方法:wi ...

随机推荐

  1. [转] 利用shell创建文本菜单与窗口部件的方法

    [From] http://www.jb51.net/article/129460.htm 前言 创建交互式shell脚本最常用的方法是使用菜单.提供各种选项可以帮助脚本用户了解脚本能做什么,不能做什 ...

  2. [转] open-falcon编写的整个脑洞历程

    [From] https://mp.weixin.qq.com/s?__biz=MjM5OTcxMzE0MQ==&mid=400225178&idx=1&sn=c98609a9 ...

  3. vue 调用常量的config.js文件

    我遇到问题,就是有很多常量需要应用的项目里面.所以需要打算设置一个config.js文件 1.填写config.js 文件 //常量配置 //快递公司名单 对应的页面为: src/pages/othe ...

  4. UML-3-案例研究

    没有什么比恰当的举例更难的了.-----马克吐温

  5. 使用 Ninject

    在[ASP.NET MVC 小牛之路]系列上一篇文章(依赖注入(DI)和Ninject)的末尾提到了在ASP.NET MVC中使用Ninject要做的两件事情,续这篇文章之后,本文将用一个实际的示例来 ...

  6. (转)增加定时检测linux占用内存,及时清理功能

    增加定时检测linux占用内存,及时清理功能 原文:http://www.voidcn.com/article/p-wnmannom-boa.html free -m 查看,发现内存跑满了. 再 to ...

  7. node之Express框架

    Express是node的框架,通过Express我们快速搭建一个完整的网站,而不再只是前端了!所以Express还是非常值得学习的! express有各种中间件,我们可以在官方网站查询其用法. Ex ...

  8. isqlplus的使用

    1 再安装Oracle的机器上开启服务[命令services.msc] 2 浏览器输入下面的网址: 虚拟机[安装orcale的机器]:http://localhost:5560/isqlplus/ 本 ...

  9. [转]python中对文件、文件夹的操作——os模块和shutil模块常用说明

    转至:http://l90z11.blog.163.com/blog/static/187389042201312153318389/ python中对文件.文件夹的操作需要涉及到os模块和shuti ...

  10. SVM 之 MATLAB 实现代码

    MATLAB 中 SVM 实现 直接上代码 main.m %% Initialize data clear, clc, close all; load('data.mat'); y(y == 0) = ...