使用匿名函数在PHP中运行数据库的示例
复制代码代码如下所示:基本DAO类说明闭包的实用性。
*处理连接的打开和关闭。
*添加斜线的SQL
*对sql参数进行类型检查,并根据需要进行转换
*提供用于处理结果集并发出一个或多个的钩子。
*提供访问底层链接和结果对象的钩子。
< PHP
定义()用户名
定义(密码
定义(dbname
定义(主机名
类basedao {
函数调用(){
$link = mysql_connect(主机名,用户名,密码);
如果(!为链接)
死亡(无法连接:。mysql_error());
如果(!mysql_select_db(北京))
死亡()不能选择数据库:。mysql_error());
返回$链接;
}
功能setparams($ SQL,$params){
如果($params!= null)
将SQL语句美元(美元,array_map(功能(N){)
如果(is_int(N))
返回(int)n;
如果(is_float(N))
返回(浮点)n;
如果(is_string(N))
返回。mysql_real_escape_string(N)。;
返回mysql_real_escape_string(N);
},$params)))
}
功能的executeQuery($ SQL,$params,美元回调= null){
$link =美元-> getConnection();
美元-> setparams($ SQL,$params);
$返回= null;
如果(($结果= mysql_query($ SQL,为链接))!= null)
如果(回调)!= null)
返回= $回调(结果,$链接);
如果(链接)!= null)
mysql_close($链接);
如果(!$结果)
死()致命错误:无效查询。mysql_error());
返回美元;
}
功能列表($ SQL,$params,美元回调){
返回这个-> executeQuery($ SQL,$params,功能(美元的结果,美元(链接)使用美元回调){
IDX = 0美元;
$数组();
而($行= mysql_fetch_assoc($结果))
如果(回调)!= null)
美元美元美元} = {编号列表回调($ idx + +,$行);
返回$列表;
});
}
功能getsingle($ SQL,$params,美元回调){
返回这个-> executeQuery($ SQL,$params,功能(美元的结果,美元(链接)使用美元回调){
如果($行= mysql_fetch_assoc($结果))
obj =美元美元回调(合排);
返回的对象;
});
}
}
类的例子{
var;
变量名称;
函数示例($ id,name){
此$;
这个名字;
}
功能的压缩文件SetID($id){
此$;
}
}
类exampledao延伸basedao {
功能获得(){
返回父::列表(选择*从节点
返回新的示例($行id},$行name );
});
}
函数加载($ id){
返回父::getsingle(选择*从节点ID = 1 新加坡
返回新的示例($行id},$行name );
});
}
函数更新($实例){
返回父::executeQuery(更新节点集名称=id是- 1
返回$结果;
});
}
函数插入($实例){
返回父::executeQuery(插入节点
ID = mysql_insert_id美元(美元链接);
例如美元->压缩文件SetID($id);
返回$结果;
});
}
}
exampledao美元=新exampledao();
列表exampledao美元美元= -> getAll()));
exampleobject美元=美元exampledao ->负载(1));
exampledao美元->更新($ exampleobject);
>