澳门新葡萄京娱乐场MySQL相关说明

资源类型
在 MySQL 模块中使用了两种资源类型。第一种是数据库的连接句柄,第二种是 SQL 查询返回的结果集。 

class mySqlClass {//定义整个数据库访问类 mySqlClass
var $querynum = 0;//查询次数变量
 
//打开服务器的连接——————————————————————————————————// 
 function connect($dbhost, $dbuser, $dbpw, $dbname = ”, $pconnect = 0)
{
  //mysql_connect — 打开一个到 MySQL 服务器的连接
  //mysql_pconnect —  打开一个到 MySQL 服务器的持久连接
  //mysql_pconnect() 和 mysql_connect() 非常相似,但有两个主要区别。
  //首先,当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。
  //其次,当脚本执行完毕后到 SQL
服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close()
不会关闭由 mysql_pconnect() 建立的连接)。
  //判断是否开启持久连接设置,开启则使用持久连接,未开启则使用一般连接
  if($pconnect) {
   if(!@mysql_pconnect($dbhost, $dbuser, $dbpw)) {
    $this->halt(‘1’);
   }
  } else {
   if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
    $this->halt(‘1’);
   }
  }
//设置字符编码如果数据库版本大于4.1且全局变量中字符集参数不为空———————————————————//
  if($this->version() > ‘4.1’) {
   //$charset = ‘gbk’;
   $charset = ‘utf-8’;
   $dbcharset = ”;
   if(!$dbcharset && in_array(strtolower($charset), array(‘gbk’,
‘big5’, ‘utf-8’))) {
    $dbcharset = str_replace(‘-‘, ”, $charset);
   }
//mysql_query — 发送一条 MySQL 查询
//设置NAMES参数为相应字符集参数值,避免PHP读取mysql数据库时出现中文乱码
   if($dbcharset) {
    mysql_query(“SET character_set_connection=$dbcharset,
character_set_results=$dbcharset, character_set_client=binary”);
   }
//如果数据库版本大于5.0设置sql_mode参数为空
   if($this->version() > ‘5.0.1’) {
    mysql_query(“SET sql_mode=””);
   }
  }
  if($dbname) {//如果数据库名存在
   //mysql_select_db — 选择 MySQL 数据库
   //如果选择数据库未成功  
   mysql_select_db($dbname);
  }
 }

预定义常量
以下常量由本扩展模块定义,因此只有在本扩展模块被编译到 PHP 中,或者在运行时被动态加载后才有效。

//mysql_select_db — 选择 MySQL
数据库———————————————————————//
 function select_db($dbname) {
  return mysql_select_db($dbname);
 }

在 PHP 4.3.0 以后的版本中,允许在 mysql_connect() 函数和 mysql_pconnect() 函数中指定更多的客户端标记。下面列出所定义的常量: 

//读取一条数据记录函数———————————————————————//
  //mysql_fetch_array — 
从结果集中取得一行作为关联数组,或数字数组,或二者兼有
  //mysql_fetch_array() 中可选的第二个参数 result_type
是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。
  //MYSQL_ASSOC 返回的数据列使用字段名作为数组的索引名。 
  //MYSQL_BOTH 返回的数据列使用字段名及数字索引作为数组的索引名。 
  //MYSQL_NUM 返回的数据列使用数字索引作为数组的索引名。索引从 0
开始,表示返回结果的第一个字段。
 function fetch_array($query, $result_type = MYSQL_ASSOC) {
  return mysql_fetch_array($query, $result_type);
 }
 
//查询数据库函数———————————————————————// 
 function query($sql, $type = ”) {
  $func = $type == ‘UNBUFFERED’ &&
@function_exists(‘mysql_unbuffered_query’) ?
   ‘mysql_unbuffered_query’ : ‘mysql_query’;
  if(!($query = $func($sql)) && $type != ‘SILENT’) {
   $this->halt(‘0’);
  }
        //查询次数+1
  $this->querynum++;
  //返回查询结果资源
  return $query;
 }

表格 2. MySQL 客户端常量

//返回影响记录数———————————————————————// 
//如果该函数成功执行,将返回记录行数;如果失败,将返回“-1”。
 function affected_rows() {
  return mysql_affected_rows();
 }

常量 描述 
MYSQL_CLIENT_COMPRESS 使用压缩的通讯协议 
MYSQL_CLIENT_IGNORE_SPACE 允许在函数名后留空格位 
MYSQL_CLIENT_INTERACTIVE 允许设置断开连接之前所空闲等候的 interactive_timeout 时间(代替 wait_timeout)。 
MYSQL_CLIENT_SSL 使用 SSL 加密。本标志仅在 MySQL 客户端库版本为 4.x 或更高版本时可用。在 PHP 4 和 Windows 版的 PHP 5 安装包中绑定的都是 3.23.x。  

//返回上一个 MySQL
操作产生的文本错误信息———————————————// 

mysql_澳门新葡萄京娱乐场,fetch_array() 函数使用一个常量来表示所返回数组的类型。下面是常量的定义: 

 function error() {
  return mysql_error();
 }

表格 3. MySQL fetch 常量

//返回上一个 MySQL 操作产生的文本错误信息 整数型态
————————————//

常量 描述 
MYSQL_ASSOC 返回的数据列使用字段名作为数组的索引名。  
MYSQL_BOTH 返回的数据列使用字段名及数字索引作为数组的索引名。  
MYSQL_NUM 返回的数据列使用数字索引作为数组的索引名。索引从 0 开始,表示返回结果的第一个字段。  

 function errno() {
  return intval(mysql_errno());
 }

注释
注: 大多数 MySQL 函数都接受 link_identifier 作为最后一个可选参数。如果未提供此参数,则使用最后一个打开的连接。如果不存在连接,则会用 php.ini 中定义的默认参数去尝试建立连接。如果连接不成功,函数返回 FALSE。 

//mysql_result —
返回结果集中的字段值———————————————//

范例
下面的简单例子演示如何连接数据库,执行查询语句,打印返回结果集和断开数据库等一系列基本的 MySQL 操作。 例子 1. MySQL 例子

 function result($query, $row) {
  $query = @mysql_result($query, $row);
  return $query;
 }

<?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’);

//mysql_num_rows —
取得结果集中行的数目———————————————//

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

 function num_rows($query) {
  $query = mysql_num_rows($query);
  return $query;
 }

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

//mysql_num_fields —
取得结果集中字段的数目———————————————//

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

 function num_fields($query) {
  return mysql_num_fields($query);
 }
 
//mysql_free_result —
释放所使用的结果内存———————————————// 

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

 function free_result($query) {
  return mysql_free_result($query);
 }

目录
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_insert_id — 取得上一步 INSERT 操作产生的
ID———————————————//

 function insert_id() {
  $id = mysql_insert_id();
  return $id;
 }

//mysql_fetch_row —
从结果集中取得一行作为数值型数组———————————————//

 function fetch_row($query) {
  $query = mysql_fetch_row($query);
  return $query;
 }

//mysql_field_name —
取得结果中指定字段的字段名———————————————//

 function field_name($query,$num=0){
  return mysql_field_name($query,$num);
 }
 
//mysql_fetch_field — 从结果集中取得列信息并作为对象返回 $num=0
表示第一个字段——————————-// 

 function fetch_fields($query,$num=0) {
  return mysql_fetch_field($query,$num);
 }

//mysql_get_server_info — 取得 MySQL
服务器信息———————————————//

 function version() {
  $MySqlVer = mysql_get_server_info();
  if (empty($MySqlVer) || $MySqlVer==””){
   $MySqlVer = $this->result(($this->query(“SELECT VERSION()”)),
0);
  }
  if (empty($MySqlVer) || $MySqlVer==””){
   $MySqlVer = ‘0’;
  }
  return $MySqlVer;
 }

 
//mysql_close — 关闭 MySQL
连接———————————————————————// 
 
 function close() {
  return @mysql_close();
 }

//异常处理函数 halt
———————————————————————//

 function halt($mess) {
  global $DataBaseBadFlag;
  //$dberror = $this->error();
  //$dberrno = $this->errno();  //1114人员连接上限
  if ($mess==”1″){
   if ($DataBaseBadFlag!=1){
    echo(“<meta
http-equiv=’refresh’content=0;URL=’pagedataerr.php’>”);
   }
   else{
    if (!@function_exists(‘phpEscape’)){
     require(“escape.php”);
    }
    echo phpEscape(“Lock = false;location.href=’pagedataerr.php’;”);
   }
   exit();
  }
  else{
   return false;
  }
 }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注