美文网首页
PHP操作Mysql常用函数

PHP操作Mysql常用函数

作者: PHPer_ | 来源:发表于2017-06-22 16:29 被阅读461次

    一、操作步骤:

    1. 连接MySQL数据库
    $link = mysql_connect($db_config['host'], $db_config['user'], $db_config['pwd'])
    //$db_config['host']=主机IP
    //$db_config['user']=数据库用户名
    //$db_config['pwd']=数据库密码
    
    1. 判断是否连接成功
    if (!$link) {
                die('Could not connect: ' . mysql_error());
            }
    //连接成功返回一个连接标识符,否则返回false
    
    1. 选择数据库
    mysql_select_db($db_config['dbname'], $link) or die('Can\'t use foo : ' . mysql_error());
    //$db_config['dbname']=数据库名
    //选择一个数据库,等同于"use 库名"语句
    //返回值为布尔类型
    
    1. 设置字符集
    mysql_set_charset("utf8"); 等同于mysql_query("set names utf8");  
    
    1. 准备SQL语句
    $sql = "SELECT * FROM tb"; 
    
    1. 向MySQL服务发送SQL语句
    mysql_query($sql,$link); -- 发送一条sql语句  
    //sql语句若是查询,则返回结果集,其他则返回bool值表示执行是否成功。  
    
    1. 解析处理结果集

    mysql_fetch_array():以关联和索引两种方式数组解析结果集
    mysql_fetch_row():以索引式数组解析结果集
    mysql_fetch_assoc():以关联式数组解析结果集
    mysql_fetch_object():以对象方式解析结果集

    1. 释放结果集,关闭数据库连接

    mysql_free_result():释放结果集
    mysql_close():关闭数据库连接

    1. 其它操作函数

    mysql_affected_rows():取得前一次 MySQL 操作所影响的记录行数,关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数
    mysql_insert_id():取得上一步 INSERT 操作产生的 ID

    Mysql数据库优化要点

    1.给查询比较频繁的字段添加索引,比如新闻的标题,就要创建Normal索引,
    2.如果没有特需要,数据表类型就用MyISAM,如果需要支持事务,行级锁之类的特殊功能就要用I�nnoDB,因为MyISAM的查询效率比InnoDB高。
    3.WHERE查询条件里面,如果筛选出来的结果集数量比较少的条件要往前写,条件多的要往后写。有利于查询优化。
    4.字段请求,少用通配符*,一般用什么字段就取什么字段,即SELECT后面的字段名,用得着什么就写什么,用不着的就不写。可以减少请求的数据量,数据量回发给PHP的少,占用内存也就不大,自然也就可以优化了查询速度。如果MYSQL交给PHP的数据量比较多,最有可能的情况就是把PHP的默认使用内存(默认8M的内存)占满。程序会直接抛出一个内存溢出的错误!
    5.如果数据量特别大,又是比较单一的应用,比如纯新闻站点,单从查询优化方面讲,可以使用第三方插件,比如xunsearch(迅搜),可以实现上亿条数据秒搜的查询效率(全文索引的一个插件),官网:http://www.xunsearch.com, xunsearch的原理是类似于百度等关键词词库索引。另外基于Sphinx+MySQL,也可以实现千万级数据全文检索。
    6.如果应用比较复杂的应用,模块比较多也比较杂乱,第三插件的应用成本可能也比较大,则最好采用“分库,分表,分服务器”的集群处理方案。再加上负载均衡解决并发请求问题。大型应用一般就是这种方案解决的。靠拿大量的资金堆服务器堆出来的。大型网站都是靠钱堆的,不是单靠优化PHP,优化MYSQL优化出来的。
    7.能用小整型绝对不用大整型,能用4个字符串长度的,绝对不设计成8个字符串。
    8.适当设计数据冗余,将A表中的一些值重新在B表里面再存一份,这样可以避免关联查询。只查B表就可以得到需要的数据了,就不需要再关联从A表中取出关联的数据了。比如A表是学生表,B表是学校表,如果查完B表要显示学生姓名,而学生姓名存在A表中,B表中以前只有学生ID,没有学生姓名,这时候这种需求就建议将A表中的学生姓名在B表中再建个字段再存一份,这就是数据冗余思想。
    9.将多条记录化为一条记录的方案:即多个值存到一个字段里,例如:投票系统中的用户信息。本来每个用户投一次需要生成一行新的记录,但是如果每天每个被投票对象只能被投100票,这种情况就不需要生成新记录,将多个值不断用PHP处理,然后UPDATE放在同一个字段里就可以了。

    任务

    创建增,删,查,改,连接数据库五个函数,最后通过函数的调用完成MySQL的增删查改的功能;

    相关文章

      网友评论

          本文标题:PHP操作Mysql常用函数

          本文链接:https://www.haomeiwen.com/subject/jspfcxtx.html