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数组中包含中文的排序方法
Jun 03 PHP
PHP利用APC模块实现文件上传进度条的方法
Jan 26 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
PHP中JSON的应用技巧
Oct 10 PHP
php实现图片缩略图的方法
Mar 29 PHP
深入理解PHP原理之执行周期分析
Jun 01 PHP
ThinkPHP的SAE开发相关注意事项详解
Oct 09 PHP
php文件上传 你真的掌握了吗
Nov 28 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
php简单实现单态设计模式的方法分析
Jul 28 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
Oct 06 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 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
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
PHP防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
AngularJS基础 ng-click 指令示例代码
2016/08/01 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
Python导入txt数据到mysql的方法
2015/04/08 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
使用Python设计一个代码统计工具
2018/04/04 Python
用python生成1000个txt文件的方法
2018/10/25 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
小学防溺水制度
2014/01/29 职场文书
公司聘任书模板
2014/03/29 职场文书
优秀学生干部个人事迹材料
2014/06/02 职场文书
课外小组活动总结
2014/08/27 职场文书
2014年学校工作总结
2014/11/20 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python