Home Backend Development PHP Tutorial How to call Oracle stored procedures with PHP_PHP tutorial

How to call Oracle stored procedures with PHP_PHP tutorial

Jul 21, 2016 pm 03:50 PM
oracle php advantage but use storage method obvious most use of to transfer process speed

But using stored procedures has at least two of the most obvious advantages: speed and efficiency. Using stored procedures is obviously faster. In terms of efficiency, if an application needs to perform a series of SQL operations at one time, it needs to go back and forth between PHP and Oracle. It is better to put the application directly into the database to reduce the number of round trips and increase efficiency. But in Internet applications, speed is extremely important, so it is necessary to use stored procedures. I also used PHP to call stored procedures not long ago, and did the following example.

The code is as follows:

 //建立一个test表 
  create table test ( 
  id number(16) not null, 
  name varchar2(30) not null, 
  primary key (id) 
  ); 
  //插入一条数据 
  insert into test values (5, 'php_book'); 
  //建立一个存储过程 
  create or replace procedure proc_test ( 
  p_id in out number, 
  p_name out varchar2 
  ) as 
  begin 
  select name into p_name 
  from test 
  where id = 5; 
  end proc_test;
Copy after login


 php code

The code is as follows:

<?php 
  //建立数据库连接 
  $user = "scott"; //数据库用户名 
  $password = "tiger"; //密码 
  $conn_str = "tnsname"; //连接串(cstr : connection_string) 
  $remote = true //是否远程连接 
  if ($remote) { 
  $conn = ocilogon($user, $password, $conn_str); 
  } 
  else { 
  $conn = ocilogon($user, $password); 
  } 
  //设定绑定 
  $id = 5; //准备用以绑定的php变量 id 
  $name = ""; //准备用以绑定的php变量 name 
  /** 调用存储过程的sql语句(sql_sp : sql_storeprocedure) 
  * 语法: 
  * begin 存储过程名([[:]参数]); end; 
  * 加上冒号表示该参数是一个位置 
  **/ 
  $sql_sp = "begin proc_test(:id, :name); end;"; 
  //parse 
  $stmt = ociparse($conn, $sql_sp); 
  //执行绑定 
  ocibindbyname($stmt, ":id", $id, 16); //参数说明:绑定php变量$id到位置:id,并设定绑定长度16位 
  ocibindbyname($stmt, ":name", $name, 30); 
  //execute 
  ociexecute($stmt); 
  //结果 
  echo "name is : $name
"; 
  ?>
Copy after login


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

CakePHP Date and Time

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

CakePHP Project Configuration

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

CakePHP File upload

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

CakePHP Routing

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

Discuss CakePHP

CakePHP Quick Guide CakePHP Quick Guide Sep 10, 2024 pm 05:27 PM

CakePHP Quick Guide

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

How To Set Up Visual Studio Code (VS Code) for PHP Development

See all articles