配置选项

MySQL 函数的行为受到 php.ini 中设置的影响。

  • mysql.allow_persistent "1" 是否允许 MySQL 的持久连接。
  • mysql.max_persistent "-1" 每个进程中最大的持久连接数目。
  • mysql.max_links "-1" 每个进程中最大的连接数,包括持久连接。
  • mysql.default_port NULL 指定默认连接数据库的 TCP 端口号。
  • mysql.default_host NULL 默认的服务器地址。不适用于SQL安全模式。
  • mysql.default_user NULL 默认使用的用户名。不适用于SQL安全模式。
  • mysql.default_password NULL 默认使用的密码。不适用于SQL安全模式。
  • mysql.connect_timeout "60" 连接超时秒数。

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

MySQL 函数

mysql_affected_rows()

返回前一次 MySQL 操作所影响的记录行数,如果最近一次查询失败的话,函数返回 -1。

mysql_client_encoding()

返回当前连接的字符集名称(character_set 变量的值)

mysql_close()

关闭非持久的 MySQL 连接。成功返回 true,失败返回 false。

通常不需要使用 mysql_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。

注:mysql_close() 不会关闭由 mysql_pconnect() 建立的持久连接。

mysql_connect()

打开非持久的 MySQL 连接。成功返回一个 MySQL 连接标识,失败返回 FALSE。

mysql_connect(server,user,pwd,newlink,clientflag) 

其中:

  • newlink:可选。如果用同样的参数第二次调用 mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识。参数 new_link 改变此行为并使 mysql_connect() 总是打开新的连接,甚至当 mysql_connect() 曾在前面用同样的参数调用过。
  • clientflag 可选。client_flags 参数可以是以下常量的组合:
    • MYSQL_CLIENT_SSL - 使用 SSL 加密
    • MYSQL_CLIENT_COMPRESS - 使用压缩协议
    • MYSQL_CLIENT_IGNORE_SPACE - 允许函数名后的间隔
    • MYSQL_CLIENT_INTERACTIVE - 允许关闭连接之前的交互超时非活动时间

mysql_pconnect()

打开一个到 MySQL 服务器的持久连接。出错返回 FALSE。

mysql_pconnect() 和 mysql_connect() 非常相似,但有两个主要区别:

  • 当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。
  • 其次,当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持打开以备以后使用。

mysql_select_db()

选择 MySQL 数据库。如果成功,则该函数返回 true。如果失败,则返回 false。

mysql_stat()

返回 MySQL 服务器的当前系统状态。如果成功,则该函数返回状态。如果失败,则返回 false。要得到其它状态变量的完整列表,可使用 SQL 命令 SHOW STATUS。

mysql_ping()

Ping 一个服务器连接,如果没有连接则重新连接。如果存在连接,则返回 true。如果失败,则返回 false。

本函数可用于空闲很久的脚本来检查服务器是否关闭了连接。

mysql_query()

执行一条 MySQL 查询。

mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。

函数自动对记录集进行读取和缓存。如需运行非缓存查询,请使用 mysql_unbuffered_query()。

mysql_real_escape_string()

转义 SQL 语句中字符串中的特殊字符。如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。可使用本函数来预防数据库攻击。

<?php
$con=mysql_connect("localhost","hello","321");
if(!$con){
    die('Could not connect: '.mysql_error());
}   // 获得用户名和密码的代码   // 转义用户名和密码,以便在 SQL 中使用
$user=mysql_real_escape_string($user);
$pwd=mysql_real_escape_string($pwd); $sql="SELECT * FROM users WHERE user='"  .$user.  "' AND password='"  .$pwd.  "'" // 更多代码 mysql_close($con);

数据库攻击。本例演示如果我们不对用户名和密码应用 mysql_real_escape_string() 函数会发生什么:

<?php$con=mysql_connect("localhost","hello","321");
if(!$con){die('Could not connect: '.mysql_error());}   $sql="SELECT * FROM users WHERE user='{$_POST['user']}' AND password='{$_POST['pwd']}'";mysql_query($sql);   // 不检查用户名和密码
// 可以是用户输入的任何内容,比如:$_POST['user']='john';  $_POST['pwd']="' OR ''='";   // 一些代码...   mysql_close($con);?>

那么 SQL 查询会成为这样:

SELECT * FROM users WHERE user='john' AND password='' OR ''=''

这意味着任何用户无需输入合法的密码即可登陆。

预防数据库攻击的正确做法:

<?phpfunction check_input($value){
    // 去除斜杠
    if(get_magic_quotes_gpc()){
        $value=stripslashes($value);
    }

    // 如果不是数字则加引号
    if(!is_numeric($value)){
        $value="'".mysql_real_escape_string($value)."'";
    }
    return $value;
}   $con=mysql_connect("localhost","hello","321");if(!$con){die('Could not connect: '.mysql_error());}   // 进行安全的 SQL
$user= check_input($_POST['user']);
$pwd= check_input($_POST['pwd']);
$sql="SELECT * FROM users WHERE user=$user AND password=$pwd";   mysql_query($sql);   mysql_close($con);?>

mysql_result()

根据行号和字段返回结果集中一个字段的值。如果成功,则该函数返回字段值。如果失败,则返回 false。

mysql_data_seek()

移动内部结果的指针。成功返回 true,失败返回 false。

mysql_data_seek(data,row)

  • data 必需。返回类型为 resource 的结果集。该结果集从 mysql_query() 调用中得到。
  • row 必需。想要设定的新的结果集指针的行数。0 指示第一个记录。

mysql_data_seek() 将 data 参数指定的 MySQL 结果内部的行指针移动到指定的行号。

接着调用 mysql_fetch_row() 将返回那一行。

row 从 0 开始。row 的取值范围应该从 0 到 mysql_num_rows - 1。

但是如果结果集为空(mysql_num_rows() == 0),要将指针移动到 0 会失败并发出 E_WARNING 级的错误,mysql_data_seek() 将返回 false。

注:mysql_data_seek() 只能和 mysql_query() 一起使用,而不能用于 mysql_unbuffered_query()。

[编辑]mysql_errno()

返回上一个 MySQL 函数的错误号码,如果没有出错则返回 0。

[编辑]mysql_error()

返回上一个 MySQL 函数的错误文本,如果没有出错则返回 (空字符串)。

[编辑]mysql_fetch_array()

从结果集中取得一行作为关联数组,或数字数组,或二者兼有。如果没有更多行则返回 false。

mysql_fetch_array(data,array_type) 

其中:

  • array_type 可选。规定返回哪种结果。可能的值:MYSQL_ASSOC - 关联数组;MYSQL_NUM - 数字数组;MYSQL_BOTH - 默认。同时产生关联和数字数组

mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。注:返回的字段名是区分大小写的。

[编辑]mysql_fetch_assoc()

从结果集中取得一行作为关联数组。如果没有更多行,则返回 false。注:本函数返回的字段名是区分大小写的。

mysql_fetch_assoc() 和用 mysql_fetch_array() 加上第二个可选参数 MYSQL_ASSOC 完全相同。

[编辑]mysql_fetch_object()

从结果集中取得一行作为对象。

若成功的话,本函数从 mysql_query() 获得一行,并返回一个对象。如果失败或没有更多的行,则返回 false。

每个随后对 mysql_fetch_object() 的调用都会返回记录集中的下一行。

注:mysql_fetch_object() 与 mysql_fetch_array() 类似,只有一点区别 - 返回的是对象而不是数组。也意味着只能通过字段名来访问数组,而不是偏移量。

[编辑]mysql_fetch_row()

从结果集中取得一行作为数字数组。依次调用 mysql_fetch_row() 将返回结果集中的下一行,如果没有更多行则返回 FALSE。

[编辑]mysql_field_name()

取得结果中指定字段的字段名。如果成功,则返回字段的名称,如果失败,则返回 false。注:返回的字段名是区分大小写的。

[编辑]mysql_free_result()

释放结果内存。如果成功返回 true,如果失败,则返回 false。

注:mysql_free_result() 仅需要在返回很大的结果集时会占用很多内存时调用。在脚本结束后所有关联的内存都会被自动释放。

[编辑]mysql_insert_id()

返回上一步 INSERT 操作产生的 ID。如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 mysql_insert_id() 返回 0。

[编辑]mysql_num_fields()

返回结果集中字段的数目。如果失败,则返回 false。

[编辑]mysql_num_rows()

返回结果集的行数。此命令仅对 SELECT 语句有效。要取得被 INSERT,UPDATE 或者 DELETE 查询所影响到的行的数目,用 mysql_affected_rows()。

[编辑]mysql_fetch_field()

从结果集中取得列信息并作为对象返回。从查询结果中取得字段的信息。如果没有指定字段偏移量,则提取下一个尚未被 mysql_fetch_field() 取得的字段。

[编辑]艺搜参考

http://www.w3school.com.cn/php/php_ref_mysql.asp

常用PHP MySQL函数的更多相关文章

  1. 数据库函数-常用的MySQL函数

    1.date_sub() 时间的加减 备注:record 为datetime类型 select record_time as date, order_area as orderArea, order_ ...

  2. MYSQL常用内置函数详解说明

    函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...

  3. MySQL最常用分组聚合函数

    一.聚合函数(aggregation function)---也就是组函数 在一个行的集合(一组行)上进行操作,对每个组给一个结果. 常用的组函数: AVG([distinct] expr) 求平均值 ...

  4. MySQL学习笔记_7_MySQL常用内置函数

    MySQL常用内置函数 说明: 1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中 2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值. ...

  5. 常用MySQL函数

    MySQL数据库提供了很多函数包括: 数学函数: 字符串函数: 日期和时间函数: 条件判断函数: 系统信息函数: 加密函数: 格式化函数: 一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ...

  6. Mysql常用运算符与函数汇总

    Mysql常用运算符与函数汇总 本文给大家汇总介绍了mysql中的常用的运算符以及常用函数的用法及示例,非常的全面,有需要的小伙伴可以参考下 我们先把数据表建好 use test;create tab ...

  7. MySQL常用的系统函数

    MySQL常用的系统函数 2019年01月17日 17:49:14 pan_junbiao 阅读数 155    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csd ...

  8. MySQL 常用的聚合函数

    [常用的聚合函数] mysql聚合函数一般用户统计一列值进行计算,然后返回计算结果.一般于分组group by 配合使用. count //统计个数 select count(*) from test ...

  9. MySQL常用的一些函数

    内容太多,走链接: MySQL函数大全

随机推荐

  1. 百度网络监控实战:NetRadar横空出世(下)

    原文:https://mp.weixin.qq.com/s/CvCs-6rX8Lb5vSTSjYQaBg 转自订阅号「AIOps智能运维」,已授权运维帮转发 作者简介:运小贝,百度高级研发工程师 负责 ...

  2. 博彩游戏(tyvj 1519)

    背景 Bob最近迷上了一个博彩游戏…… 描述 这个游戏的规则是这样的:每花一块钱可以得到一个随机数R,花上N块钱就可以得到一个随机序列:有M个序列,如果某个序列是产生的随机序列的子串,那么就中奖了,否 ...

  3. class文件检查器

    Class文件检查器保证装载的class文件内容有正确的内部结构,并且这些class文件互相间协调一致.Class文件检查器实现的安全目标之一就是程序的健壮性.如果某个有漏洞的编译器,或某个聪明的黑客 ...

  4. poj 1269 判断直线的位置关系

    题目链接 题意 判断两条直线的位置关系,重合/平行/相交(求交点). 直线以其上两点的形式给出(点坐标为整点). 思路 写出直线的一般式方程(用\(gcd\)化为最简), 计算\(\begin{vma ...

  5. C++的静态联编和动态联编详解

    一.概述: 通常来说联编就是将模块或者函数合并在一起生成可执行代码的处理过程,同时对每个模块或者函数调用分配内存地址,并且对外部访问也分配正确的内存地址,它是计算机程序彼此关联的过程.按照联编所进行的 ...

  6. AC日记——乘积最大 洛谷 P1018

    题目描述 今年是国际数学联盟确定的“2000――世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得 ...

  7. Codeforces Round #442 (Div. 2) Danil and a Part-time Job

    http://codeforces.com/contest/877/problem/E 真的菜的不行,自己敲一个模板,到处都是问题.哎 #include <bits/stdc++.h> u ...

  8. 移动端自动化测试(一)appium环境搭建

    自动化测试有主要有两个分类,接口自动化和ui自动化,ui自动化呢又分移动端的和web端的,当然还有c/s架构的,这种桌面程序应用的自动化,使用QTP,只不过现在没人做了. web自动化呢,现在基本上都 ...

  9. lms111,rplidar 方向和起始角

    上图中,从X反方向是开始,按顺时针方向增加,实际运转方向也为顺时针方向. lms111:正放时:数据按逆时针依次输出.(起始----->结束) 北阳:正放时:数据按逆时针依次输出

  10. restful的认识和用法

    目录 一.restful的认识 1.基本概念 2.规范和约束 3.使用标准的状态码 二.具体使用 1.简单概括 2.根据id查询一个员工 3.查询所有员工 4.保存一个员工 5.根据id修改员工 6. ...