PHP操作Mysql常用函数

一、操作步骤:

  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的增删查改的功能;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,869评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,716评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,223评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,047评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,089评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,839评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,516评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,410评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,920评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,052评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,179评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,868评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,522评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,070评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,186评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,487评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,162评论 2 356

推荐阅读更多精彩内容