<?php

 //编写数据库操作的魔术函数
function mysql_bind(){ //首先我们不知道外面会传入多少个参数
//可以用func_get_args()方法来获取全部传入参数,这个方法返回全部参数的数组
//和func_get_args()方法相对应的其实还有一个func_num_args()来获取参数个数
$args = func_get_args(); //通过使用array_shift方法,使传入的第一个参数,后后面的参数分开,其实就是把sql语句,和
//后面传入的值分开,使用了array_shift方法,可以返回一个字符串,这个字符串就是sql语句
//后面剩下的数组就是要传入的值 //sql语句
$sql = array_shift($args);
//重新复制给一个数组
$value = $args; //替换$sql语句中的?,使用str_replace函数
$sql = str_replace("?","'%s'",$sql); //把替换好的$sql语句,通过vsprintf函数,把值填入进去 $sql = vsprintf($sql,$value); //截取$sql语句前面的关键字,其实就是select,insert,update,delete
$begin = substr($sql,0,6); //explode(" ",$sql)[0]; //这种写法在PHP5.4之前是不支持的 $conn = mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("bbs",$conn);
mysql_query("set names 'utf8'"); $result = mysql_query($sql) or die(mysql_error()); if(strcasecmp($begin,"insert") == 0){
//如果插入成功,那么肯定有一个最新的id,所以这个id不等于0的话,证明插入成功,否则失败
return mysql_insert_id();
}
else if(strcasecmp($begin,"update") == 0){
//mysql_affected_rows()表示几行受影响,成功,肯定是大于0,否则失败
return mysql_affected_rows();
}
else if(strcasecmp($begin,"delete") == 0){
//mysql_affected_rows()表示几行受影响,成功,肯定是大于0,否则失败
return mysql_affected_rows();
}
else{
//为了将查询的内容返回回去
//首先申明一个空的数组,然后,这个空的数组,每次循环,都将$row赋值给他
//相当于这个数组就形成了一个二维数组
$arr = array();
while($row=mysql_fetch_array($result)){
$arr[] = $row;
// array_push($arr,$row);
}
return $arr;
} } ?>

strcasecmp("a","b");

  比较两个字符串(用ASCII 码);

  返回1,-1,0;

About_php_封装函数的更多相关文章

  1. Javascript:来一个AJAX封装函数

    前不久换工作了,最近一直在出差,忙得跟狗一样,所以博客都荒废许久了. 最近的工作中涉及到大量的ajax操作,本来该后台做的事也要我来做了.而现在使用的ajax函数是一个后台人员封装的—-但他又是基于 ...

  2. jQuery封装函数

    //1,插件命名:jQuery.插件名.js 为拉避免和其他库的冲突// //2,自定义插件尽量避免使用$ 如果非要使用$就一定要将jQuery传递进去,//写在最后加一个小括号写jquery ;结束 ...

  3. 浏览器兼容——DOM事件封装函数

    //封装函数var eventUtil={    //添加事件    addHandler:function(element,type,handler){        if(element.addE ...

  4. WMI 获取硬件信息的封装函数与获取联想台式机的出厂编号方法

    原文:WMI 获取硬件信息的封装函数与获取联想台式机的出厂编号方法 今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都是可以提取出来的,就自己把那些公共部分提出出来,以后如果要获取 某部分的 ...

  5. Ajax封装函数笔记

    Ajax封装函数: function ajax(method, url, data, success) { //打开浏览器 //1.创建一个ajax对象 var xhr = null; try { x ...

  6. JS运动缓冲的封装函数

    之前经常写运动函数,要写好多好多,后来想办法封装起来.(运动缓冲). /* 物体多属性同时运动的函数 obj:运动的物体 oTarget:对象,属性名为运动的样式名,属性值为样式运动的终点值 rati ...

  7. js面向对象学习笔记(二):工厂方式:封装函数

    //工厂方式:封装函数function test(name) { var obj = new Object(); obj.name = name; obj.sayName = function () ...

  8. javascript封装函数入门

    封装函数的入门 一.使用函数有两步: 1.定义函数,又叫声明函数, 封装函数. 定义函数的三个要素:功能,参数,返回值. function 函数名(形参){ 函数代码 return 结果} //2.调 ...

  9. ajax请求封装函数

    写封装函数的套路 1.先写出这个函数原来的基本用法 2.写一个没有形参空函数,将上一步的代码直接作为函数体, 3.根据使用过程中,抽象出来需要变的东西作为形参 function ajax (metho ...

随机推荐

  1. [Head First设计模式]策略模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...

  2. Express知识整理

    开发实例 Express开发实例(1) —— Hello,world! Express开发实例(2) —— Jade模板引擎

  3. ASP.NET AJAX调用 WebService

    同事的代码,帮忙修改的,为了实现页面跳转回来后,状态的保持,Service 使用了Session. 主要的JS $.ajax({ url: "/ws/StaffInfo.asmx/Note& ...

  4. 妈妈再也不用担心别人问我是否真正用过redis了

    1. Memcache与Redis的区别 1.1. 存储方式不同 1.2. 数据支持类型 1.3. 使用底层模型不同 2. Redis支持的数据类型 3. Redis的回收策略 4. Redis小命令 ...

  5. POJ2914 (未解决)无向图最小割|Stoer-Wagner算法|模板

    还不是很懂,贴两篇学习的博客: http://www.hankcs.com/program/algorithm/poj-2914-minimum-cut.html http://blog.sina.c ...

  6. javascript中的冒泡排序

    冒泡排序:就是将一个数组中的元素按照从大到小或者从小到大的顺序进行排列. var array=[9,8,7,6,5,4,3,2,1]; 第一轮比较:8,7,6,5,4,3,2,1,9      交换了 ...

  7. Cookie使用时需要注意个数及大小限制

    各浏览器对Cookie有一定的限制,在使用时需要格外注意. 各浏览器之间对cookie的不同限制:   IE6.0 IE7.0/8.0/9.0+ Opera FF Safari Chrome cook ...

  8. iframe使用方法

    --点击按钮会把地址里的页面显示在oframe里,对iframe可以设置宽和高<iframe src="demo_iframe.htm" name="iframe_ ...

  9. Jquery 实现点击tab切换页签

    1.我将这个封装城了插件代码如下,你可以独立到一个js文件,然后页面引用下这个js文件: (function ($) { $.fn.extend({ qmTabs: function () { var ...

  10. hive 普通创建表和跟新列操作

    创建表 CREATE TABLE if not exists student ( student_id int, sex int, address String, email String ) 这里需 ...