使用匿名函数在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);

>