![]() |
|
首页 │ Apache │ Linux│ Java│ MySQL│ 注册│帮助 | |||
小弟刚学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类中的写法了,这里面肯定有点错误,希望能得到您的见解.

