麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
这里有个函数的问题想和各位朋友请教一下
悬赏分:20 - 2007年08月22日

小弟刚学PHP没多长时间,这里有个不大不小的问题想和您请教一下,

看看这个函数:

//###### 取得一条数据资料
function fetch_GetSQL($table,$id,$selid,$isfix=1,$sqlkey2=''){
global $db;
if($id!=''){
$sqlkey1 .="$id='$selid'";
}
$info=$db->query("SELECT * FROM $table WHERE $sqlkey1$sqlkey2 LIMIT 1");
return $info;
}

帮忙把fetch_GetSQL()函数的参数分析以下,比如说第一个肯定是表名……

这里有几个应用了这个fetch_GetSQL()函数的例子:

$getusergroupid=fetch_GetSQL('carclub_group','group_grouplinkid',2," AND group_carclubid='$post[carclub]'");

$cityinfo=fetch_GetSQL('areas','areaid',$bbuserinfo['user_cityid']);

这两个例子里面'carclub_group'和'areas'都是数据表;'group_grouplinkid'和'areaid'分别是对应表里的字段;后面的几个不太明白,比如说第一个例子里面有4个参数,而fetch_GetSQL()中有5个,第一个例子中的 " AND group_carclubid='$post[carclub]'" 很象 $sqlkey2=''不是吗?
第二个例子倒是不难理解 应该是从表areas查询仅当条件areaid = $bbuserinfo['user_cityid'] 并且返回第一行,其中areaid是主键

当我把fetch_GetSQL()改为ADODB中的写法时测试时会报这样的错误:Fatal error: Cannot use object of type ADORecordSet_mysql as array in D:\AppServ\www\register\register_direct.php on line 90

其中在90行就是上面例子中的第一个$getusergroupid

这是我装载了ADODB后写了个class sqlUtil,在该环境下自定义的两个函数:

//###### 取得一条或多条数据资料
function &SelectLimit ( $sql,$limit='' )
{
if( empty($limit) )
{
return $this->db->selectLimit($sql);
}
else
{
$limit = (array)$limit;
return $this->db->selectLimit($sql,$limit[1],$limit[0]);
}
}

//###### 取得一条数据资料,当然这里fetch_GetSQL的写法就不一样了
function fetch_GetSQL($table,$id,$selid,$isfix=1,$sqlkey2='')
{
if($id!='')
{
$sqlkey1 .="$id='$selid'";
}
$sql = "select * from $table where $sqlkey1$sqlkey2 ";//本来这里原先是这样写的$sql = "select * from `".$table."` where $sqlkey1$sqlkey2 ";由于$table是该class sqlUtil里面唯一声明过的所以就加了反撇号
$info=$this->SelectLimit($sql,1);
return $info;
}

所以现在有两个问题希望大虾您能解释:第一个就是fetch_GetSQL()里面的各个参数和该函数的逻辑,另一个就是fetch_GetSQL()在装在了ADODB后的sqlUtil类中的写法了,这里面肯定有点错误,希望能得到您的见解.

提问者:macoo   08-22 11:11
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
10 + 75 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM