$db->dbDefineByName()的作用是将Select的列名绑定到变量上,标准点应该是将PHP变量绑定到Oracle语句的Placeholder上$dberrcode = $db->dbParseSql($sql, $stmt);//配置Oracle语句    if ($dberrcode == 0) { //检查是否有错误发生
        $db->dbDefineByName($stmt, "H_ID", $h_id); //绑定到PHP变量,后面给Smarty
        $db->dbDefineByName($stmt, "H_ID_SUB", $h_id_sub); 
        $db->dbDefineByName($stmt, "START_DATE", $start_date); 
        $db->dbDefineByName($stmt, "AREA_NAME", $area_name);         $dberrcode = $db->dbExecute($stmt); //执行
$count=0; 
        if ($dberrcode == 0) { //检查错误
$count = 0; 
            while($db->dbFetch($stmt)){ //循环获取结果行
                //这里的$h_id是前面$db->dbDefineByName($stmt, "H_ID", $h_id);绑定的.这里会自动赋值
                $smarty->append("h_id", $h_id); 
                $smarty->append("h_id_sub", $h_id_sub); 
                $smarty->append("star_date", $start_date); 
                $smarty->append("area_name", $area_name); 
                $count++; //统计结果行数//echo "area_name:".$area_name." </br>"; 
            } 
                $smarty->assign("count", $count);         } 
        $db->dbFreeSql($stmt); 
    } 
    $db->dbFreeSql($stmt); //释放Oracle语句
    $db->dbDisconn(); //断开数据库连接

解决方案 »

  1.   

    你使用的$db(Tkcm01类)这个对象应该是已经封装的Oracle操作.使用的那些方法都是封装过的,并不是PHP OCI8里面的标准函数.
    当然$db(Tkcm01类)里面也是使用PHP OCI8标准函数实现的.
      

  2.   

    谢谢你的帮助,这个程序是别人写的,是给偶学习用的,具体的偶也不太清楚。数据库的部分没有找到资料,幸好得到了你的指教。请问前辈有没有好的,详细的PHP的学习资料呢,希望能推荐一下。
      

  3.   

    可以看看《Programming PHP》,当然不明白的或者是想要用PHP完成什么功能,先看看手册~