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中动态显示签名和ip原理
Mar 28 PHP
mysql 全文搜索 技巧
Apr 27 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
Nov 10 PHP
PHP--用万网的接口实现域名查询功能
Dec 13 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
PHP反射API示例分享
Oct 08 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 PHP
PHP操作Redis常用命令的实例详解
Dec 23 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
追求程序速度,而不是编程的速度
2008/04/23 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
PHP分页效率终结版(推荐)
2013/07/01 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
jquery删除数据记录时的弹出提示效果
2014/05/06 Javascript
JSON格式化输出
2014/11/10 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
深入探讨前端框架react
2015/12/09 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
Fiddler如何抓取手机APP数据包
2016/01/22 Python
深入浅出学习python装饰器
2017/09/29 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
详解django中使用定时任务的方法
2018/09/27 Python
学习python分支结构
2019/05/17 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
python yield关键词案例测试
2019/10/15 Python
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
儿科护士实习自我鉴定
2013/10/17 职场文书
培训心得体会
2013/12/29 职场文书
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
放假通知
2015/04/14 职场文书
会议主持词通用版
2019/04/02 职场文书
Python实现随机生成迷宫并自动寻路
2021/06/13 Python
nginx 配置缓存
2022/05/11 Servers