PHP操作mysql函数详解,mysql和php交互函数


Posted in PHP onMay 19, 2011

1. 建立和关闭连接
1) mysql_connect()
resource mysql_connect([string hostname [:port][:/path/to/socket][,string username] [,string password]])
所有参数都是可选的
举例:
@mysql_connect(“localhost”, “user”, “password”)
or die(“Could not connect to mysql server!”);
注意,@符号表示禁止失败尝试导致的任何错误信息,用户将看到的是die()中指定的错误信息.
注意,当与多个mysql进行连接时,必须指定每个连接的链接ID,如下:
$link1 = @mysql_connect(“server1″, “user”, “password”)
or die(“Could not connect to mysql server!”);
$link2 = @mysql_connect(“server2″, “user”, “password”)
or die(“Could not connect to mysql server!”);
2) mysql_pconnect()
resource mysql_pconnect([string hostname [:port][:/path/to/socket][,string username] [,string password]])
与mysql_connect()不同的是:会首先查找现有链接,不存在时才创建.
注意,不需要显示关闭连接(mysql_close()),因为连接将放在池中,所以叫持久连接.
3) mysql_close()
boolean mysql_close([resource link_id])
关闭连接不是必须的,因为可以由mysql的垃圾回收来处理.
如果没有指定link_id,则关闭最近的链接.
2. 选择数据库
mysql_select_db()
boolean mysql_select_db(string db_name [, resource link_id])
3. 查询MySql
1) mysql_query()
resource mysql_query(string query [,resource link_id])
负责执行query.
2) mysql_db_query()
resource mysql_db_query(string database, string query [, resource link_id])
等价于mysql_select_db() + mysql_query(),从参数中就可以清楚的看出来.
4. 获取和显示数据
1) mysql_result()
mixed mysql_result(resource result_set, int row [,mixed field])
从result_set 的指定row 中获取一个field 的数据. 简单但是效率低.
举例:

$link1 = @mysql_connect(“server1″, “webuser”, “password”) 
or die(“Could not connect to mysql server!”); 
@mysql_select_db(“company”) or die(“Could not select database!”); 
$query = “select id, name from product order by name”; 
$result = mysql_query($query); 
$id = mysql_result($result, 0, “id”); 
$name = mysql_result($result, 0, “name”); 
mysql_close();

注意,上述代码只是输出结果集中的第一条数据的字段值,如果要输出所有记录,需要循环处理.
… 
for ($i = 0; $i <= mysql_num_rows($result); $i++) 
{ 
$id = mysql_result($result, 0, “id”); 
$name = mysql_result($result, 0, “name”); 
echo “Product: $name ($id)”; 
} 
…

注意,如果查询字段名是别名,则mysql_result中就使用别名.
2) mysql_fetch_row()
array mysql_fetch_row(resource result_set)
从result_set中获取整行,把数据放入数组中.
举例(注意和list 的巧妙配合):
… 
$query = “select id, name from product order by name”; 
$result = mysql_query($query); 
while(list($id, $name) = mysql_fetch_row($result)) { 
echo “Product: $name ($id)”; 
} 
…

3) mysql_fetch_array()
array mysql_fetch_array(resource result_set [,int result_type])
mysql_fetch_row()的增强版.
将result_set的每一行获取为一个关联数组或/和数值索引数组.
默认获取两种数组,result_type可以设置:
MYSQL_ASSOC:返回关联数组,字段名=>字段值
MYSQL_NUM:返回数值索引数组.
MYSQL_BOTH:获取两种数组.因此每个字段可以按索引偏移引用,也可以按字段名引用.
举例:
… 
$query = “select id, name from product order by name”; 
$result = mysql_query($query); 
while($row = mysql_fetch_array($result, MYSQL_BOTH)) { 
$name = $row['name'];//或者 $name = $row[1]; 
$name = $row['id'];//或者 $name = $row[0]; 
echo “Product: $name ($id)”; 
} 
…

4) mysql_fetch_assoc()
array mysql_fetch_assoc(resource result_set)
相当于 mysql_fetch_array($result, MYSQL_ASSOC)
5) mysql_fetch_object()
object mysql_fetch_object(resource result_set)
和mysql_fetch_array()功能一样,不过返回的不是数组,而是一个对象.
举例:
… 
$query = “select id, name from product order by name”; 
$result = mysql_query($query); 
while($row = mysql_fetch_object($result)) { 
$name = $row->name; 
$name = $row->id; 
echo “Product: $name ($id)”; 
} 
…

5. 所选择的记录和受影响的记录
1) mysql_num_rows()
int mysql_num_rows(resource result_set)
返回result_set中的行数.
注意,mysql_num_rows()只在确定select语句查询获得的记录数有效,如果要获取insert/updata/delete查询影响的记录数,需要使用mysql_affected_rows().
2) mysql_affected_rows()
int mysql_affected_rows([resource link_id])
获取insert/updata/delete查询影响的记录数
注意,不需要输入参数,默认使用最近建立的数据库连接的最近结果.可以使用可选参数link_id来选择数据库连接.
6. 获取数据库和表的信息
1) mysql_list_dbs()
resource mysql_list_dbs([resource link_id])
获取服务器上所有数据库名称.
举例:
mysql_connect(“localhost”, “name”,”pwd”); 
$dbs = mysql_list_dbs(); 
while (list($db) = mysql_fetch_row(dbs)) { 
echo “$db <br>”; 
}

注意,输出结果与使用的用户权限相关.
2) mysql_db_name()
string mysql_db_name(resource result_set, interger index)
获取在mysql_list_dbs()返回的result_set中位置为index的数据库名.
3) mysql_list_tables()
resource mysql_list_tables(string database [,resource link_id])
获取database中的所有表名.
4) mysql_tablename()
string mysql_tablename(resource result_set, interger index)
获取mysql_list_tables()返回的result_set中位置为index的表名.
在学习PHP的COM 和 .Net(Windows)函数的时候,发现了一个通过COM操作SQL SERVER的例子,查找了相关的资料,于是就有了这篇PHP连接ACCESS的文章,相信网上已经很多了,还是贴在这里吧。
我的机器环境:WIN2000,APACHE2,PHP Version 5.1.0RC1
<?php 
$conn = new COM(“ADODB.Connection”) or die(“Cannot start ADODB.Connection”); 
$conn->Open(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\php5\\netBook.mdb”); 
$rs = $conn->Execute(“select * from manage”); // 记录集 
$num_columns = $rs->Fields->Count(); 
echo $num_columns . “<br />\n”; 
for ($i=0; $i < $num_columns; $i++) { 
$fld[$i] = $rs->Fields($i); 
} 
$rowcount = 0; 
while (!$rs->EOF) { 
for ($i=0; $i < $num_columns; $i++) 
{ 
echo htmlspecialchars($fld[$i]->value) . “\t”; 
} 
echo “<br />\n”; 
$rowcount++; // rowcount 自增 
$rs->MoveNext(); 
} 
$rs->Close(); //关闭数据集 
$conn->Close(); 
?>
PHP 相关文章推荐
php网站来路获取代码(针对搜索引擎)
Jun 08 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
php生成缩略图示例代码分享(使用gd库实现)
Jan 20 PHP
php计算指定目录下文件占用空间的方法
Mar 13 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
Jul 01 PHP
举例讲解PHP面对对象编程的多态
Aug 12 PHP
关于PHP文件的自动运行方法分析
May 13 PHP
php 人员权限管理(RBAC)实例(推荐)
May 24 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
PHP基于phpqrcode类生成二维码的方法详解
Mar 14 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
Aug 07 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
May 19 #PHP
php中全局变量global的使用演示代码
May 18 #PHP
一个PHP分页类的代码
May 18 #PHP
PHP sprintf()函数用例解析
May 18 #PHP
PHP 命令行参数详解及应用
May 18 #PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
May 18 #PHP
JS与PHP向函数传递可变参数的区别实例代码
May 18 #PHP
You might like
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
php中根据变量的类型 选择echo或dump
2012/07/05 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
浅析return false的正确使用
2013/11/04 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
JavaScript监听手机物理返回键的两种解决方法
2017/08/14 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
举例讲解Python中is和id的用法
2015/04/03 Python
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
使用python3实现操作串口详解
2019/01/01 Python
django rest framework 自定义返回方式
2020/07/12 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
python中添加模块导入路径的方法
2021/02/03 Python
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
数据库的约束含义
2012/09/09 面试题
出纳的岗位职责
2013/11/09 职场文书
2014自荐信的写作技巧
2014/01/28 职场文书
工程承包协议书范本
2014/09/29 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
2015年妇女工作总结
2015/05/14 职场文书
2016年母亲节广告语
2016/01/28 职场文书