经常在写代码时,可能需要连接oracle,
兄弟们可以把以下代码写到控制类的方法中,在需要调用时就可以直接调用了。
$list = $this->getInPlanData();
public function getInPlanData(){
//此处的inplan_user,InPlan_Pass,InPlan_SID,都是我提前在config里设置好了,如果没有设置,
//则直接填上账号,密码,连接地址-》oci_connect(账号,密码,连接地址,'uft8')
$conn = oci_connect(C("InPlan_User"), C("InPlan_Pass"), C("InPlan_SID"),'utf8');
$query = "此处填写SQL语句";
$stid = oci_parse($conn,$query); //该函数用于将SQL语句解析到一个句柄中
$r = oci_execute($stid, OCI_DEFAULT); //oci_execute()函数用于执行解析后的SQL语句
//这么写的好处是面对重复执行的sql可以提高解析SQL语句效率
$i = 0;
while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS)){
//如果只有一条数据获取,就无需这条while循环了
$list[$i] = $row; //列表赋值
$i++;
}
oci_close($conn);
if ($i>0) {
//返回数组列表
return list;
} else {
$this->error($query);
$this->error('Failed to get InPlan data, Please try again');
}
}
oci_parse()函数用于将SQL语句解析到一个句柄中,
而oci_execute()函数用于执行解析后的SQL语句。
PS:个人理解是可以提高重复SQL语句的执行效率,不知道是否正确。