PHP4 与 MySQL 数据库操作函数详解(2)

 更新时间:2016年11月25日 16:42  点击:2033
<5>.数据库记录操作函数(5个):
1、mysql_fetch_array()
格式:array mysql_fetch_array(int query);
执行成功,返回1个数组,该数组保存有下一条记录的值,如执行失败,则返回False值。
返回的数组既可以用下标来表示,也可以用字段名来表示。
例子:
$query = mysql_query($sql , $connect);
while($arrary = mysql_fetch_array($query))
{
echo $array[column1]." | ".$array[column2];
//echo $array[0]." | ".$array[1];
}
?>
Note : 数组的下标是从0开始的!
2、mysql_fetch_row()
格式:array = mysql_fetch_row(int query);
与1的mysql_fetch_array()函数功能基本相同。区别在于mysql_fetch_row()只能以数组下标来表示。
成功返回1个数组,失败返回False值。
例子:
$query = mysql_query($sql , $connect);
while($row = mysql_fetch_row($query))
{
echo $row[0] . " | " . $row[1] . "
";
}
?>
Note : mysql_fetch_row()函数只能用数组下标来表示,并从0开始。
另:mysql_fetch_row()比mysql_fetch_array()执行速度快,并且都是对下一行数据进行读取。
3、mysql_result()
格式:int mysql_result(int query , int row , string filedname);
在mysql_result()中,参数row必须从0开始,参数filedname必须是真实的字段名,不能用下标来表示。
执行成功,返回由数据库中取出的字段的数值,失败则返回False值。
例子:
$query = mysql_query($sql , $connect);
echo mysql_result($query , 0 , "column1")."
";
echo mysql_result($query , 1, "column1")."
";
echo mysql_result($query , 2, "column1")."
";
?>
Note : 此函数功能少,但使用方便。
4、mysql_fetch_object()
格式: object mysql_fetch_object(int query)
能对指定的字段进行循环读取,执行成功,将以对象object的形式返回数值,失败则返回False值。
例子:
$query = mysql_query($sql , $connect);
while($object = mysql_fetch_object($query))
7) 数据库信息函数(2个):
1、mysql_fetch_field()
格式:object mysql_fetch_field(int query , int [field_offset]);
返回1个对象,即一哈希表,下标有:
table : 表名
name : 字段名
max_length : 该字段的最大长度
not_null : 字段为not null则返回1,否则返回0
primary_key : 字段为primary key则返回1,否则返回0
unique_key : 字段为unique key则返回1,否则返回0
multiple_key : 字段为非unique key则返回1,否则返回0
numeric : 字段为numeric则返回1,否则返回0
blob : 字段为blob则返回1,否则返回0
type : 字段的类型
unsigned : 字段为unsigned则返回1,否则返回0
zerofill : 字段为zero filled则返回1,否则返回0
引用格式为:对象名->下标名
使用此函数可以得到表名、字段名、类型.......
例子:
$query = mysql_query($sql , $connect);
while($object = mysql_fetch_field($query))
{
echo "table name : ".$object->table."
";
echo "field name : ".$object->name."
";
echo "primary key : ".$object->primary_key."
";
echo "not null : ".$object->not_null."
";
echo "field type : ".$object->type."
";
echo "field max length : ".$object->max_length."
";
}
?>
Note : 哈希表的是从0坐标开始的,即第一个字段为哈希表中的0项。
如果我们想直接得到哈希表的第三项即第三个字段的信息,可用如下格式:
$query = mysql_query($sql , $connect);
$object = mysql_fetch_field($query , 2);
echo "table name : ".$object->table."
";
echo "field name : ".$object->name."
";
echo "primary key : ".$object->primary_key."
";
echo "not null : ".$object->not_null."
";
echo "field type : ".$object->type."
";
echo "field max length : ".$object->max_length."
说PHP就不能不提MySQL,而要讲MySQL,那么PHP也是必然要被提起。PHP的迅速崛起,离不开MySQL,而MySQL的广泛应用,也与PHP休戚相关。
下面详细分析PHP4中与MySQL相关操作的函数(共32个,开头都为mysql_):
<1>. 连接数据库服务器(database server)的函数(2个):
(1).mysql_connect()
格式:int mysql_connect(string [hostname] [ort],string [username],string [password]);
参数中的port参数表示数据库服务器的端口号,一般用它的默认端口号就可以了。
如果不填任何参数,则默认的hostname为localhost,username为root,password为空。
函数执行成功,返回一个int 类型的连接号(link_identifier),执行失败,返回false值。
例子:

$connect = mysql_connect("localhost","user","password");
if($connect) echo "Connect Successed!"; //连接成功,显示Connect Successed!
else echo "Connect Failed!"; //连接失败,显示Connect Failed!
?>
在上例中,如mysql_connect()执行失败,将显示系统的错误提示,而后继续往下执行。那,该如何屏蔽这些系统的错误提示并在失败后结束程序?
在MySQL中,允许在数据库函数之前加上@符号,屏蔽系统的错误提示,同时用die()函数给出更易理解的错误提示,然后die()函数将自动退出程序。
上例可以改为:

$connect = @mysql_connect("localhost","user","password") or die ("Unable to connect database server!");
?>
如mysql_connect()执行失败,将显示 Unable to connect database server!后,退出程序。
(2).mysql_pconnect()
格式:int mysql_pconnect(string [hostname] [ort],string [username],string [password]);
此函数与(1)的mysql_connect()基本相同,区别在于:
--------- 当数据库操作结束之后 ,由(1)的mysql_connect()建立的连接将自动关闭,而(2)的mysql_pconnect()建立的连接将继续存在,是一种稳固持久的连接。
--------- 在(2)的mysql_pconnect(),每次连接前,都会检查是否有使用同样的hostname,use,password的连接,如果有,则直接使用这个连接号。
--------- (1)的mysql_connect()建立的连接可以用mysql_close()关闭,而(2)的mysql_pconnect()不能用mysql_close()来关闭。
大家一定使用过 phpmyadmin 里面的数据库导入,导出功能,非常方便。但是在实际应用中,我发现如下几个问题:
1 数据库超过一定尺寸,比如6M 这时使用导出一般没问题,可以正确的保存到本机硬盘上面,但是导入则不行!原因是:一般的 PHP.INI 里面设置临时文件/上传文件的大小限制为2M,而phpmyadmin使用了上传的方式,造成失败。
2 导出到硬盘的 .SQL 文件在导回时,经常出现由于某些单引号的问题引起失败,造成导入失败,只能用 mysql等应用程序导入了。
我的数据库已经超过10M,所以必须解决这个问题。我的思路:
导出: 用phpmyadmin 保存数据库/表格结构,用脚本读取数据库内容并保存到文件里面!
导入: 用phpmyadmin 恢复数据库/表格结构,用脚本读取文件,然后保存到库里面!
导出程序如下:调用方法为 ****.php?table=tablename
这个简单的程序目前一次保存一个表格!!每行为一个字段的数据!!

< ?
if($table=="")exit();
mysql_connect("localhost","name","password");
mysql_select_db("database");
$result = mysql_query("select * from $table");
if(mysql_num_rows($result) < = 0) exit();
echo "开始转换数据到文本...
";
$handle = fopen("$table.txt","w");
$numfields = mysql_num_fields($result);
fputs($handle,$numfields." ");
for($k=0;$k< mysql_num_rows($result);$k )
{
$msg = mysql_fetch_row($result);
for($i=0;$i< $numfields;$i )
{
$msg[$i] = str_replace(" ","&&php2000mysqlreturn&&",$msg[$i]);
$msg[$i] = str_replace(" " ,"&&php2000mysqlreturn&&",$msg[$i]);
fputs($handle,$msg[$i]." ");
}
fputs($handle,"------- php2000 dump data program V1.0 for MySQL -------- ");
}
fclose($handle);
echo "ok";
?>
导入的程序如下:用法同上面!

< ?
if($table=="")exit();
mysql_connect("localhost","name","password");
前言


点击查看原图
You say eether and I say eyether,
You say neether and I say nyther;
Eether, eyether, neether, nyther -
Let's call the whole thing off !

You like potato and I like po-tah-to,
You like tomato and I like to-mah-to;
Potato, po-tah-to, tomato, to-mah-to -
Let's call the whole thing off !


我爱听这首歌,尤其是由Louis Armstrong 及 Ella 的二重唱版本。它显示出两个恋爱中人的彼此竞争有多辛苦,也是关于互相妥协并寻求共通之处的历程。
PHP可以用最少的精力以及最多的乐趣来建立动态的网站,要建立动态网站我们需要使用数据库来撷取登入账号信息、发布动态新闻、储存讨论区的文章。就以使用最通用的 MySQL 数据来说,你们公司已经完成了如此神奇的工作,让你们的网站比你们所能想象的还要出名。接着你们也发现MySQL无法应付实际的工作量了,是该更换数据库系统的时候了。
不幸地,在PHP中所有数据库的存取都有些细微的不同。与MySQL连结你要使用 mysql_connect(),当你决定升级到 Oracle 或 Microsoft SQL Server 时,你必须分别改用 ocilogon() 或 mssql_connect()。更糟糕的是不同连结所使用的参数也都不一样,有的数据库说 po-tato(马铃薯的发音),别的数据库又说 pota-to(马铃薯的另一个发音),喔…..天啊。
我们不要放弃
当你需要确保你程序的可移植性的时候,一个叫做 ADODB 的数据库封包链接库已经出现了。它提供了共通的应用程序接口来跟所有支持的数据库沟通,因此你无须放弃!
ADODB是Active Data Object DataBase的缩写(很抱歉!玩计算机的有时候不是很有原创性)。ADODB目前支持MySQL、PostgreSQL、Oracle、Interbase、Microsoft SQL Server、Access、FoxPro、Sybase、ODBC及ADO,你可以从 http://php.weblogs.com/adodb下载 ADODB。
MySQL的例子
PHP中最通用的数据库是MySQL,所以我想你会喜欢下面的程序代码,它连结到 localhost 的 MySQL 服务器,数据库名称是 mydab,并且执行一个 SQL 的 select 指令查询,查询结果会一列列地印出来。


[!--infotagslink--]

相关文章

  • php正确禁用eval函数与误区介绍

    eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
  • C++中 Sort函数详细解析

    这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • Mysql数据库错误代码中文详细说明

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
  • PHP用strstr()函数阻止垃圾评论(通过判断a标记)

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04