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数组实例总结与说明
Aug 23 PHP
php 字符串替换的方法
Jan 10 PHP
浅析PHP中的UNICODE 编码与解码
Jun 29 PHP
linux下安装php的memcached客户端
Aug 03 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
Dec 31 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
Jan 05 PHP
PHP常见漏洞攻击分析
Feb 21 PHP
jquery+thinkphp实现跨域抓取数据的方法
Oct 15 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Dec 14 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
May 02 PHP
thinkPHP和onethink微信支付插件分享
Aug 11 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 Token(令牌)设计
2008/03/15 PHP
php垃圾代码优化操作代码
2010/08/05 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
类之Prototype.js学习
2007/06/13 Javascript
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
JavaScript动态生成二维码图片
2016/04/20 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
Python 时间处理datetime实例
2008/09/06 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
python中的colorlog库使用详解
2019/07/05 Python
python输出数组中指定元素的所有索引示例
2019/12/06 Python
大三自我鉴定范文
2013/10/05 职场文书
生产经理的自我评价分享
2013/11/07 职场文书
2014教师年度工作总结
2014/11/10 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript