PHP 中的MySQL处理函数

 在PHP函数库中,有数十种专为处理MySQL数据库所开发的函数,详细的说明可在这个位置:http://www.php.net/manual/en/ref.mysql.php查询。在此对一些常用的函数进行简要的说明。

1  连接与查询

功能

建立数据库连接

函数名称

Mysql_connect() 或 mysql_pconnect()

传入参数

[string SERVER [, string USERNAME [, string PASSWORD [, bool NEW_LINK [, int CLIENT_FLAGS]]]]]

返回参数

建立完成的数据库连接

续表

功能

建立数据库连接

范例

$link = mysql_connect('localhost', 'root', '123456');

说明

创建一MySQL服务器连接。若使用 mysql_pconnect() ,则可以创建一个持续性的连接(persistent connection)。

其中所有的参数都可以省略。

当不加任何参数时,SERVER 的默认值为 localhost,USERNAME 的默认值为 PHP 执行程序的拥有者,PASSWORD 则为空字符串。而 SERVER 后方还可以加上冒号与端口号,代表使用哪个端口与 MySQL 连接,如果不特别指定,均使用默认端口3306。

功能

选用数据库

函数名称

mysql_select_db()

传入参数

string DATABASE_NAME [, resource LINK_IDENTIFIER]

返回参数

 

范例

mysql_select_db('db');

说明

此函数用来选定欲访问的数据库。当 LINK_IDENTIFIER 参数被省略时,默认使用最近一次已建立的 connection;若没有任何已建立的 connection 可供利用,则会自动执行未加参数的 mysql_connect(),试图自行创建新的 connection。

另外,亦可使用mysql_query()函数达到相同效果,如:mysql_query('use db');

功能

新建数据库

函数名称

mysql_create_db ()

传入参数

string DATABASE_NAME

返回参数

 

范例

mysql_create_db('db');

说明

此函数可创建一新数据库,数据库名称为传入参数。

功能

执行查询

函数名称

mysql_query()

传入参数

string QUERY [, resource LINK_IDENTIFIER [, int RESULT_MODE]]

返回参数

 

续表

功能

执行查询

范例

mysql_query('select * from zip');

说明

本函数用来提交任何标准的SQL查询字符串给MySQL处理。若未指定 LINK_IDENTIFIER参数,则会使用最近一次已建立的connection。

而当所执行的是 SELECT、SHOW、EXPLAIN 或 DESCRIBE 语句时,将返回一个 resource identifier,执行失败时返回FALSE。执行其他SQL语句时,成功返回TRUE,否则返回FALSE。

功能

释放存储器

函数名称

mysql_free_result ()

传入参数

resource RESULT

返回参数

 

范例

mysql_free_result($result);

说明

释放 $RESULT 所占用的存储器

功能

关闭连接

函数名称

Mysql_close ()

传入参数

[resource LINK_IDENTIFIER]

返回参数

 

范例

Mysql_close ($link);

说明

关闭由mysql_connect()所创建的MySQL服务器连接。

一般而言,当程序结束之后,由 mysql_connect()所建立的连接会自动中断,这个函数是用不着的。但是将数据取出之后,程序还要对它们进行耗时又复杂的运算处理。建议先退出数据库的连接,以减轻MySQL的负担。

2  分析、计算与统计

功能

计算返回结果中的数据条数

函数名称

mysql_num_rows

传入参数

Resource RESULT

返回参数

数据条数

范例

mysql_num_rows ($result);

功能

移动数据记录指针

函数名称

mysql_data_seek ()

传入参数

esource RESULT_IDENTIFIER, int ROW_NUMBER

返回参数

 

范例

mysql_data_seek($result, 6);

说明

将RESULT_IDENTIFIER的数据记录指针移到第 ROW_NUMBER个 row 去。以范例而言,便是将数据记录指针移动到第六行。

功能

分析返回内容,并提取单条数据

函数名称

mysql_fetch_row ()

传入参数

resource RESULT

返回参数

单条数据数组

范例

数据数组

$num_rows = mysql_num_rows($result);

for ( $i=0; $i<$num_rows; $i++ ) {

list($value1, $value2) = mysql_fetch_row($result);

echo $value1;

echo $value2;

echo ......

}

用法二:

while ( list($value1, $value2) = mysql_fetch_row($result) ) {

echo $value1;

echo $value2;

echo ......

}

用法三:

while ( $value = mysql_fetch_row($result) ) {

echo $value[0];

echo $value[1];

echo ......

}

说明

搭配循环的使用,这个函数可以从RESULT中将数据以一维数组的方式分行提取出来。

功能

分析数组内容

函数名称

mysql_fetch_array ()

传入参数

resource result [, int result_type]

返回参数

 

范例

用法一:(使用字段编号分析)

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {

printf("ID: %s  Name: %s", $row[0], $row[1]);

}

用法二:(使用字段名称分析)

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

printf("ID: %s  Name: %s", $row["id"], $row["name"]);

}

用法三:(同时使用字段编号与名称分析)

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {

printf ("ID: %s  Name: %s", $row[0], $row["name"]);

}

说明

分析每一行$row中的各个字段内容。

可使用三种分析方式,分别为:

MYSQL_NUM:使用字段编号分析

MYSQL_ASSOC:使用字段名称分析

MYSQL_BOTH:同时使用字段编号与名称分析

功能

分析对象内容

函数名称

Mysql_fetch_object ()

传入参数

resource result [, int result_type]

返回参数

 

范例

$result = mysql_query("select * from mytable");

while ($row = mysql_fetch_object($result)) {

echo $row->user_id;

echo $row->fullname;

}

说明

mysql_fetch_object ()类似于mysql_fetch_array ()

唯一不同之处在于mysql_fetch_object ()仅能使用字段名称进行分析,不能使用字段编号或使用同时使用字段编号与名称进行分析。

功能

分析表头内容

函数名称

mysql_fetch_field ()

传入参数

resource result [, int fieldnum]

返回参数        

 

范例

while ($i < mysql_num_fields($result)) {

    echo "Information for column $i:<br />/n";

    $row = mysql_fetch_field($result, $i);

    if (!$row) {

        echo "No information available<br />/n";

    }

    echo "<pre>

    blob:         $row->blob

    max_length:   $row->max_length

    multiple_key: $row->multiple_key

    name:         $row->name

    not_null:     $row->not_null

    numeric:      $row->numeric

    primary_key:  $row->primary_key

    table:        $row->table

    type:         $row->type

    unique_key:   $row->unique_key

    unsigned:     $row->unsigned

    zerofill:     $row->zerofill

    </pre>";

    $i++;

}

说明

分析表头字段信息,信息类型共有12种,包括名称、长度、类型等,说明如下:

    name – 字段名称

    table – 这个字段所属表格名称

    max_length - 这个字段最大长度

    not_null - 如果是1则表示此字段不可为 NULL

    primary_key - 如果是1则表示此字段为 primary key

    unique_key - 如果是1则表示此字段为 unique key

    multiple_key - 如果是1则表示此字段为 non-unique key

    numeric - 如果是1则表示此字段为数字类型

    blob - 如果是1则表示此字段为 BLOB 类型

    type - 这个字段的类型

    unsigned -如果是1则表示此字段为unsigned 类型

    zerofill -如果是1则表示此字段为zero-filled

功能

检测自动生成的值

函数名称

Mysql_insert_id ()

传入参数

[resource LINK_IDENTIFIER]

返回参数

 

范例

$ID = mysql_insert_id($link);

说明

假如您将某个字段的类型设为AUTO_INCREMENT,使用本函数将可以得知在 INSERT 语句被执行时,MySQL 自动为该字段创建的值为何。

功能

检测所影响的数组数量

函数名称

mysql_affected_rows ()

传入参数

[resource LINK_IDENTIFIER]

返回参数

 

范例

$num_rows = mysql_affected_rows($link);

说明

取得最近一次通过LINK_IDENTIFIER,在 MySQL上执行INSERT、UPDATE或DELETE 所影响的行(row)数。若执行的是不含WHERE的DELETE语句,则会删除全部数据,但本函数的返回值将是0。

由于执行UPDATE时,新值与旧值相同的数据列不会被更新,所以 mysql_affected_rows( )函数的返回值,不一定就是查询条件所符合的数据条数。

3   显示系统信息

功能

列出系统内所有数据库名称

函数名称

mysql_list_dbs ()

传入参数

$link

返回参数

 

范例

$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {

echo $row->Database . "/n";

}

说明

显示系统内所有的数据库名称

功能

列出某一数据库内所有数据表名称

函数名称

Mysql_list_tables ()

传入参数

$dbname

返回参数

 

范例

$result = mysql_list_tables($dbname);

 

while ($row = mysql_fetch_row($result)) {

echo "Table: $row[0]/n";

}

说明

列出某一数据库内所有数据表数据

功能

列出某数据表内所有字段名称

函数名称

Mysql_list_fields ()

传入参数

$dbname,$tablename,$link

返回参数

 

范例

$fields = mysql_list_fields("database1", "table1", $link);

$columns = mysql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {

echo mysql_field_name($fields, $i) . "/n";

}

说明

列出某数据表内所有数据字段名称。

在了解如何用PHP连接MySQL,执行SQL指令并使用返回的数据,同时也对PHP所提供的MySQL函数有进一步的了解之后,接下来便是通过范例来增强使用上的熟悉程度,请见下一节:PHP与MySQL操作范例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值