php访问oracle存储过程实例详解

 更新时间:2017年1月22日 11:08  点击:1673
这篇文章介绍了php访问oracle存储过程实例的详解,有兴趣的同学可以参考一下哦

php 访问oracle 存储过程实例详解

比如我的本地Oracle数据库有一个package,里面有一个存储过程:

createorreplacepackage PKG_TRANS_RELis
 
 -- Author : test
 -- Created :
 -- Purpose : test
 
 -- Public type declarations
 PKG_NAME varchar2(20) :='PKG_TRANS_REL';
 --存储过程,测试用
 procedurepro_GC_withdraw(in_merch_no  invarchar2,
              in_withdraw_amtinnumber,
              out_result  outnumber,
              out_errmsg  outvarchar2);
endPKG_TRANS_REL;

包名是PKG_TRANS_REL,存储过程是pro_GC_withdraw,这个存储过程有四个参数,两个入参,两个出参。

在PHP中通过pdo调用示例:

$this->_pdo =newPDO(PDO_DB_DNS, PDO_DB_USER, PDO_DB_PASSWORD);
$call="CALL PKG_TRANS_REL.pro_GC_withdraw(?,?,?,?)";
 
try{
    $stmt=$this->_pdo->prepare($call);
 
    $stmt->bindParam(1,$merch_no);
    $stmt->bindParam(2,$amount, PDO::PARAM_INT);
 
    $stmt->bindParam(3,$result, PDO::PARAM_INT, 4);
    $stmt->bindParam(4,$error_msg, PDO::PARAM_STR, 64);
 
    $stmt->execute();
 
  }catch(PDOException$e)
  {
    $msg='SQL:'.$e->getMessage();
    $msg= iconv('GBK','UTF-8',$msg);
    user_dump('SQL:'.$msg);
    returnfalse;
  }
 
  ...

bindParam第三个参数默认是PDO::PARAM_STR,如果是其它类型就要指明

入参传值比较简单,出参稍微复杂些,要指明长度。

这篇文章介绍了PHP安装mysql.so扩展的方法,非常实用,有兴趣的同学可以参考一下

因为在PHP中mysql_connect模块已经逐渐被弃用,我在搭建环境时也没有再安装mysql扩展,但是今天在维护一个老项目时,出现报错

Fatal error: Uncaught Error: Call to undefined function mysql_connect()

于是google一下,发现如果php和mysql都已经安装完成了,可以使用phpize工具手动编译生成mysql.so扩展来解决

下面是操作步骤:

1.进入php源码的ext/mysql目录

cd/usr/local/src/php-5.6.29/ext/mysql/

2.运行phpize,在该目录下生成一个configure文件(php安装目录:/usr/local/php/)

/usr/local/php/bin/phpize

3.运行configure,指明php-config文件位置(/usr/local/php/bin/php-config)和mysql安装目录(/usr/local/mysql/)

./configure--with-php-config=/usr/local/php/bin/php-config--with-mysql=/usr/local/mysql/

4.编译安装,生成mysql.so

make&&makeinstall

5.修改php.ini文件,添加mysql.so扩展配置,保存退出

extension=mysql.so

6.重启php-fpm

service php-fpm restart

7.测试,在web目录下添加php文件,如/usr/local/nginx/html/mysql.php

<?php
$con= mysql_connect('localhost','root','');
if($con){
 die('ok');
}else{
 die('Could not connect: '. mysql_error());
}

访问URL,如:http://192.168.8.9/mysql.php

显示ok,则配置成功

最近有同事问:php mysql如何实现mysql_select_db选择数据库?小编分享了这篇文章解答了问题,在PHP中,与MySQL服务器建立连接后,需要确定所要连接的数据库,此时我们可以使用mysql_select_db函数,该函数用于选择需要操作的数据库。有兴趣的同学参考一下吧。

mysql_select_db介绍

mysql_select_db函数有两个参数:

 代码如下 复制代码
mysql_select_db(database,connection)

如果成功,则该函数返回 true。如果失败,则返回 false

参数 描述
database 必需。需要选择的数据库。
connection 可选。MySQL 连接。如果没有设置该参数,则表明使用上一个mysql数据库连接。

 mysql_select_db实例

 
 代码如下 复制代码
<?php
 $host="mysql153.secureserver.net";
 $uname="root";
 $pass="password";
  
 $connection= mysql_connect ($host,$uname,$pass);
  
 if(!$connection) {
   die("mysql连接失败");
 }

 

 $result=mysql_select_db ("manongjc");
  
 if(!$result) {
   die("没有选择任何数据库");
 }
    
 echo"数据库manongjc已经选择,可以使用该数据库了";
?>
这篇文章写了php mysql操作mysql_connect连接数据库的教程,php操作数据库首先必须连接到指定的数据库,连接数据库可以使用PHP mysql_connect函数。有兴趣的同学可以参考一下!

mysql_connect介绍

php mysql_connect用于连接mysql服务器,该函数有多个参数,但我们一般只需要了解以下三个参数即可:

mysql_connect(server,user,pwd)

参数介绍:

  • server -- mysql服务器地址
  • user -- 服务器用户名
  • pwd -- 服务器登录密码

如果连接成功,则返回一个 MySQL 连接标识,如果连接失败则返回 FALSE。

 mysql_connect实例

<?php
$host="mysql153.secureserver.net";
$uname="root";
$pass="password";
 
$connection= mysql_connect ($host,$uname,$pass);
if(!$connection) {
 die("mysql服务器连接失败");
}else{
 echo"恭喜你!mysql服务器连接成功";
}
?>
[!--infotagslink--]

相关文章

  • 金额阿拉伯数字转换为中文的存储过程

    Create Procedure AtoC @ChangeMoney Money as Set Nocount ON Declare @String1 char(20) Declare @String2 char(30) ...2016-11-25
  • PHP操作MSSQL存储过程修改用户密码

    存储过程在数据库的应用中我们用到的非常的多了,下面我们来看一篇关于PHP操作MSSQL存储过程修改用户密码的例子,具体的如下所示。 mssql2008 存储过程 下面可以直接...2016-11-25
  • Vue基于localStorage存储信息代码实例

    这篇文章主要介绍了Vue基于localStorage存储信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-16
  • Oracle使用like查询时对下划线的处理方法

    这篇文章主要介绍了Oracle使用like查询时对下划线的处理方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-16
  • MySql存储过程之逻辑判断和条件控制

    具体详情请看下文小编给大家带来的知识点。同编写程序类似,存储过程中也有对应的条件判断,功能类似于if、switch。在MySql里面对应的是IF和CASE1、IF判断IF判断的格式是这样的:IF expression THEN commands [ELSEIF ex...2015-10-21
  • Java连接数据库oracle中文乱码解决方案

    这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
  • PHP调用MySQL存储过程并返回值实现程序

    本文章来给大家详细介绍在php中如何来调用执行mysql存储过程然后返回由存储过程返回的值了,有需要了解的同学可进入参考。 。调用存储过程的方法。 a。如果存储过...2016-11-25
  • C#连接Oracle数据库字符串(引入DLL)的方式

    这篇文章主要给大家介绍了关于C#连接Oracle数据库字符串(引入DLL)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-25
  • Mysql中存储UUID去除横线的方法

    参考:http://stackoverflow.com/questions/412341/how-should-i-store-guid-in-mysql-tables通常用UUID做唯一标识,需要在数据库中进行存储。UUID的格式 复制代码 代码如下: String string = UUID.randomUUID().toStrin...2015-03-15
  • C#调用存储过程详解(带返回值、参数输入输出等)

    这篇文章主要介绍了C#调用存储过程的方法,结合实例形式详细分析了各种常用的存储过程调用方法,包括带返回值、参数输入输出等,需要的朋友可以参考下...2020-06-25
  • mysql存储过程实现split示例

    复制代码 代码如下:call PROCEDURE_split('分享,代码,片段',',');select * from splittable;复制代码 代码如下:drop PROCEDURE if exists procedure_split;CREATE PROCEDURE `procedure_split`( inputstring varc...2014-05-31
  • Oracle 实现将查询结果保存到文本txt中

    这篇文章主要介绍了Oracle 实现将查询结果保存到文本txt中的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-07
  • 教你使用Python连接oracle

    今天教各位小伙伴怎么用Python连接oracle,文中附带非常详细的图文示例,对正在学习的小伙伴们很有帮助哟,需要的朋友可以参考下...2021-05-18
  • oracle实现动态查询前一天早八点到当天早八点的数据功能示例

    这篇文章主要介绍了oracle实现动态查询前一天早八点到当天早八点的数据功能,涉及Oracle针对日期时间的运算与查询相关操作技巧,需要的朋友可以参考下...2020-07-11
  • python从Oracle读取数据生成图表

    这篇文章主要介绍了python如何从Oracle读取数据生成图表,帮助大家更好的利用python处理数据,感兴趣的朋友可以了解下...2020-10-14
  • 详解JS变量存储深拷贝和浅拷贝

    这篇文章主要介绍了JS变量存储深拷贝和浅拷贝,想深入了解JS的同学,可以参考下...2021-05-04
  • Oracle 两个逗号分割的字符串,获取交集、差集(sql实现过程解析)

    这篇文章主要介绍了Oracle 两个逗号分割的字符串,获取交集、差集的sql实现过程解析,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • c#调用存储过程实现登录界面详解

    c#调用存储过程实现登录界面详解...2020-06-25
  • linux服务器开机启动oracle的设置方法

    这篇文章主要介绍了linux服务器下oracle开机自启动设置,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • oracle实现按天,周,月,季度,年查询排序方法

    这篇文章主要介绍了oracle按天,周,月,季度,年查询排序功能,本文给出了sql语句,每种方法给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11