PHP链接MySQL的常用扩展函数


Posted in PHP onOctober 23, 2014

一、PHP连接数据库及基本操作

MySQL采用的是'客户机/服务器'架构。使用PHP安装的MySQL扩展函数,和直接使用客户端软件区访问MySQL数据库服务器,原理一样,都需要向MySQL管理系统发送SQL命令,然后将结果返回给用户。

在PHP中,SQL分为两类(查看SQL语句分类):一是有返回结果集的DQL语句,如select/desc 表名,执行完毕之后,需要PHP处理结果集;二是没有结果集的,如DML、DDL等,但是DML语句执行成功后对数据表的记录有影响。

<?php
//连接数据库,常用参数是主机名、用户名和密码
$link = mysql_connect('localhost','root','123456');
//判断是否连接成功
if(!$link)
{
die('连接失败'.mysql.error()); //连接成功返回资源标识符,失败返回false,mysql_error显示错误信息
}//选择数据库,mysql_error()只在调试中使用,再部署项目时就不要了,不然会泄露数据库信息
mysql_select_db('test') or die('选择数据库失败'.mysql_error());
//mysql_query()可以设置字符集和执行SQL语句
mysql_query('set names utf-8');
$sql = 'insert into test(id,name) values("1","dwqs")';
$result = mysql_query($sql);  //执行sql返回结果集
//处理结果集,insert属于DML,会对表的记录有影响
if($result && mysql_affected_rows() > 0)
{
//mysql_insert_id()返回最后一条新纪录的auto_increment值
echo '插入数据成功'.mysql_insert_id().'<br/>';
}
else
{
echo '插入数据失败,错误号:'.mysql_errno().'错误信息:'.mysql_error().'<br/>';
}
//关闭连接
mysql_close($link);
?>

二、PHP处理select查询结果集

在PHP中执行select语句返回一个结果集,可以用于对各个字段的处理

$result = mysql_query('select * from test');
//获取记录行的个数
$rows = mysql_num_rows($result);
//获取字段个数,即数据列
$cols = mysql_num_fields($result);

如果需要访问结果集中的数据,可以使用下列四个函数中的一个(均以结果集资源符作为参数,并自动返回下一条记录,在表末尾时返回false)

1、mysql_fetch_row():该函数将一条结果记录返回并以一个普通的索引数据保存

2、mysql_fetch_assoc():从结果集中取得一行作为关联数据保存

3、mysql_fetch_array():从结果集中取得一行作为关联数组,或数字数组,或二者兼有。可以使用MYSQL_ASSOC(关联数组形式)、MYSQL_NUM(索引数组形式)和MYSQL_BOTH作为第二个参数,指定返回的数据形态。

4、mysql_fetch_object():从结果集中取得一行作为对象,各个字段以对象方式访问。

建议:没有特殊要求,不要使用mysql_fetch_array(),可以使用mysql_fetch_row()或者mysql_fetch_assoc()实现同样的功能,且效率高。

另外也有三个与结果集相关的常用函数

5、mysql_data_seek(int $num):移动内部结果的指针,$num是想要设定的新的结果集指针的行数。

6、mysql_fetch_lengths(resource $result):取得结果集中每个输出的长度

7、mysql_result(resource $result , int $row[,mixed $field]):返回 MySQL 结果集中一个单元的内容。字段参数可以是字段的偏移量或者字段名,或者是字段表点字段名(tablename.fieldname)。如果给列起了别名('select foo as bar from…'),则用别名替代列名。调用 mysql_result()不能和其它处理结果集的函数混合调用。

PHP 相关文章推荐
虚拟主机中对PHP的特殊设置
Oct 09 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 PHP
php启动时候提示PHP startup的解决方法
May 07 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
Jun 17 PHP
解析mysql 表中的碎片产生原因以及清理
Jun 22 PHP
php数据类型判断函数有哪些
Sep 23 PHP
PHP使用递归生成文章树
Apr 21 PHP
PHP封装的HttpClient类用法实例
Jun 17 PHP
关于PHP中Session文件过多的问题及session文件保存位置
Mar 17 PHP
php+ajax登录跳转登录实现思路
Jul 31 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
详解PHP中的序列化、反序列化操作
Mar 21 PHP
使用PHPMailer实现邮件发送代码分享
Oct 23 #PHP
PHP封装分页函数实现文本分页和数字分页
Oct 23 #PHP
20个2014年最优秀的PHP框架回顾
Oct 22 #PHP
PHP获取当前页面URL函数实例
Oct 22 #PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 #PHP
百度实时推送api接口应用示例
Oct 21 #PHP
php之curl实现http与https请求的方法
Oct 21 #PHP
You might like
PHP邮件专题
2006/10/09 PHP
PHP面向对象分析设计的经验原则
2008/09/20 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
文本加密解密
2006/06/23 Javascript
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
Python的ORM框架SQLObject入门实例
2014/04/28 Python
用Python编写一个简单的FUSE文件系统的教程
2015/04/02 Python
Python正则表达式匹配HTML页面编码
2015/04/08 Python
python安装与使用redis的方法
2016/04/19 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
2019/04/15 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
赔偿协议书范本
2014/04/15 职场文书
高中学生评语大全
2014/04/25 职场文书
博士生导师推荐信
2014/07/08 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
2015年个人剖析材料范文
2014/12/29 职场文书
圆明园纪录片观后感
2015/06/03 职场文书