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服务器连接成功";
}
?>
|