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 相关文章推荐
vBulletin Forum 2.3.xx SQL Injection
Oct 09 PHP
给多个地址发邮件的类
Oct 09 PHP
令PHP初学者头疼十四条问题大总结
Nov 12 PHP
解析wamp5下虚拟机配置文档
Jun 27 PHP
PHP数组排序函数合集 以及它们之间的联系分析
Jun 27 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 PHP
php实现文件下载功能的几个代码分享
May 10 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
php实现的递归提成方案实例
Nov 14 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
laravel 数据验证规则详解
Oct 23 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
json简单介绍
2008/06/10 Javascript
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
利用js正则表达式验证手机号,email地址,邮政编码
2014/01/23 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
2017/08/31 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
python使用cookie库操保存cookie详解
2014/03/03 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
Python实现一个简单的毕业生信息管理系统的示例代码
2020/06/08 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
实习生个人找工作的自我评价
2013/10/30 职场文书
青年创业培训欢迎词
2014/01/08 职场文书
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
校园元旦活动总结
2014/07/09 职场文书
材料化学专业求职信
2014/07/15 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
歌舞青春观后感
2015/06/10 职场文书