PHP访问MySQL数据库

来源:互联网 发布:阿里云ca证书安装 编辑:程序博客网 时间:2024/05/16 06:49

PHP手册上提供了以下一些主要的mysql数据库的支持函数:

mysql_affected_rows -- 取得前一次 MySQL 操作所影响的记录行数
mysql_change_user --  改变活动连接中登录的用户
mysql_client_encoding -- 返回字符集的名称
mysql_close -- 关闭 MySQL 连接
mysql_connect -- 打开一个到 MySQL 服务器的连接
mysql_create_db -- 新建一个 MySQL 数据库
mysql_data_seek -- 移动内部结果的指针
mysql_db_name -- 取得结果数据
mysql_db_query -- 发送一条 MySQL 查询
mysql_drop_db -- 丢弃(删除)一个 MySQL 数据库
mysql_errno --  返回上一个 MySQL 操作中的错误信息的数字编码
mysql_error --  返回上一个 MySQL 操作产生的文本错误信息
mysql_escape_string --  转义一个字符串用于 mysql_query
mysql_fetch_array --  从结果集中取得一行作为关联数组,或数字数组,或二者兼有
mysql_fetch_assoc --  从结果集中取得一行作为关联数组
mysql_fetch_field --  从结果集中取得列信息并作为对象返回
mysql_fetch_lengths --  取得结果集中每个输出的长度
mysql_fetch_object -- 从结果集中取得一行作为对象
mysql_fetch_row -- 从结果集中取得一行作为枚举数组
mysql_field_flags --  从结果中取得和指定字段关联的标志
mysql_field_len --  返回指定字段的长度
mysql_field_name --  取得结果中指定字段的字段名
mysql_field_seek --  将结果集中的指针设定为制定的字段偏移量
mysql_field_table --  取得指定字段所在的表名
mysql_field_type --  取得结果集中指定字段的类型
mysql_free_result -- 释放结果内存
mysql_get_client_info -- 取得 MySQL 客户端信息
mysql_get_host_info -- 取得 MySQL 主机信息
mysql_get_proto_info -- 取得 MySQL 协议信息
mysql_get_server_info -- 取得 MySQL 服务器信息
mysql_info --  取得最近一条查询的信息
mysql_insert_id --  取得上一步 INSERT 操作产生的 ID
mysql_list_dbs --  列出 MySQL 服务器中所有的数据库
mysql_list_fields -- 列出 MySQL 结果中的字段
mysql_list_processes -- 列出 MySQL 进程
mysql_list_tables -- 列出 MySQL 数据库中的表
mysql_num_fields -- 取得结果集中字段的数目
mysql_num_rows -- 取得结果集中行的数目
mysql_pconnect --  打开一个到 MySQL 服务器的持久连接
mysql_ping -- Ping 一个服务器连接,如果没有连接则重新连接
mysql_query -- 发送一条 MySQL 查询
mysql_real_escape_string --  转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集
mysql_result -- 取得结果数据
mysql_select_db -- 选择 MySQL 数据库
mysql_stat -- 取得当前系统状态
mysql_tablename -- 取得表名
mysql_thread_id -- 返回当前线程的 ID
mysql_unbuffered_query --  向 MySQL 发送一条 SQL 查询,并不获取和缓存结果的行

    
下面我们用一个 MySQL 例子来介绍一下其中几个重要的函数:

<?php
// 连接,选择数据库
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    or die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('my_database') or die('Could not select database');

// 执行 SQL 查询
$query = 'SELECT * FROM my_table';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// 用 HTML 显示结果
echo "<table>/n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "/t<tr>/n";
    foreach ($line as $col_value) {
        echo "/t/t<td>$col_value</td>/n";
    }
    echo "/t</tr>/n";
}
echo "</table>/n";

// 释放结果集
mysql_free_result($result);

// 关闭连接
mysql_close($link);
?> 

mysql_connect用于连接数据库,第一个参数是mySQL数据库所在主机的名称或IP地址;第二、三个参数是登陆该数据库的用户名密码。

mysql_select_db函数一般紧接着mysql_connect调用,作用是选择一个数据库作为数据源,其参数是数据库的名称。

mysql_query函数执行数据查询语言,也就是我们常用的SQL语言。

注意,跟JDBC不同的是,mysql_query函数即可能有返回值,也可能没有返回值,我们是通过MySQL fetch 常量进行判断的:
MYSQL_ASSOC: 返回的数据列使用字段名作为数组的索引名。 
MYSQL_BOTH: 返回的数据列使用字段名及数字索引作为数组的索引名。 
MYSQL_NUM: 返回的数据列使用数字索引作为数组的索引名。索引从 0 开始,表示返回结果的第一个字段。 

mysql_fetch_array函数返回查询结果result的每一行,这里我们用到了一个PHP foreach关键字,该关键字的作用是遍历数组,本质上对数组line执行一个循环,每次循环中,当前单元的值被赋给 $col_value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

最后两个函数mysql_free_result和mysql_close用例释放SQL结果和关闭数据库连接,这两个函数的目的主要是为了减少对数据库访问的负载,大家不要忘了。

原创粉丝点击