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已经选择,可以使用该数据库了";
?>
|
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服务器连接成功";
}
?>
|
相关文章
- Create Procedure AtoC @ChangeMoney Money as Set Nocount ON Declare @String1 char(20) Declare @String2 char(30) ...2016-11-25
- 存储过程在数据库的应用中我们用到的非常的多了,下面我们来看一篇关于PHP操作MSSQL存储过程修改用户密码的例子,具体的如下所示。 mssql2008 存储过程 下面可以直接...2016-11-25
- 这篇文章主要介绍了Vue基于localStorage存储信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-16
- 这篇文章主要介绍了Oracle使用like查询时对下划线的处理方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-16
- 具体详情请看下文小编给大家带来的知识点。同编写程序类似,存储过程中也有对应的条件判断,功能类似于if、switch。在MySql里面对应的是IF和CASE1、IF判断IF判断的格式是这样的:IF expression THEN commands [ELSEIF ex...2015-10-21
- 这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
- 本文章来给大家详细介绍在php中如何来调用执行mysql存储过程然后返回由存储过程返回的值了,有需要了解的同学可进入参考。 。调用存储过程的方法。 a。如果存储过...2016-11-25
- 这篇文章主要给大家介绍了关于C#连接Oracle数据库字符串(引入DLL)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-25
- 参考:http://stackoverflow.com/questions/412341/how-should-i-store-guid-in-mysql-tables通常用UUID做唯一标识,需要在数据库中进行存储。UUID的格式 复制代码 代码如下: String string = UUID.randomUUID().toStrin...2015-03-15
- 这篇文章主要介绍了C#调用存储过程的方法,结合实例形式详细分析了各种常用的存储过程调用方法,包括带返回值、参数输入输出等,需要的朋友可以参考下...2020-06-25
- 复制代码 代码如下:call PROCEDURE_split('分享,代码,片段',',');select * from splittable;复制代码 代码如下:drop PROCEDURE if exists procedure_split;CREATE PROCEDURE `procedure_split`( inputstring varc...2014-05-31
- 这篇文章主要介绍了Oracle 实现将查询结果保存到文本txt中的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-07
- 今天教各位小伙伴怎么用Python连接oracle,文中附带非常详细的图文示例,对正在学习的小伙伴们很有帮助哟,需要的朋友可以参考下...2021-05-18
oracle实现动态查询前一天早八点到当天早八点的数据功能示例
这篇文章主要介绍了oracle实现动态查询前一天早八点到当天早八点的数据功能,涉及Oracle针对日期时间的运算与查询相关操作技巧,需要的朋友可以参考下...2020-07-11- 这篇文章主要介绍了python如何从Oracle读取数据生成图表,帮助大家更好的利用python处理数据,感兴趣的朋友可以了解下...2020-10-14
- 这篇文章主要介绍了JS变量存储深拷贝和浅拷贝,想深入了解JS的同学,可以参考下...2021-05-04
Oracle 两个逗号分割的字符串,获取交集、差集(sql实现过程解析)
这篇文章主要介绍了Oracle 两个逗号分割的字符串,获取交集、差集的sql实现过程解析,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11- c#调用存储过程实现登录界面详解...2020-06-25
- 这篇文章主要介绍了linux服务器下oracle开机自启动设置,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
- 这篇文章主要介绍了oracle按天,周,月,季度,年查询排序功能,本文给出了sql语句,每种方法给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11