存储过程
创建存储过程
创建存储过程和普通SQL的执行一致,调用数据库连接实例的exec()方法即可。
下面的例子展示了如何创建存储过程:
<?php
try {
$conn = new PDO(“pgsql:host=172.16.19.117;port=5432;dbname=vastbase”,”vbadmin”,”vbase@admin”);
$sql = " CREATE OR REPLACE PROCEDURE hzy.pro_test(a integer,inout b integer) AS begin b := a+b; end;";
$conn->exec($sql);
$conn = null;
} catch(Exception $e) {
print $e->getMessage();
die();
}
?>
调用存储过程
非预编译调用存储过程和执行普通SQL步骤一致,不再赘述;预编译调用存储过程和普通SQL的过程一致,区别在于设置占位符参数。需通过bindParam()方法设置占位符参数。第一个参数是占位符的索引位置,第二个参数是变量,若JDBC支持可获取到存储过程的输出值(经测试不支持),第三个参数是存储过程参数对应的类型。
下面的例子展示了如何调用存储过程:
<?php
try {
$conn = new PDO(“pgsql:host=172.16.19.117;port=5432;dbname=vastbase”,”vbadmin”,”vbase@admin”);
$stmt = $conn->prepare(“call hzy.pro_test(?,?));
$stmt->bindParam(1, $a, PDO::PARAM_INT);
$stmt->bindParam(2, $b, PDO::PARAM_INT);
$stmt->execute();
$conn = null;
} catch(Exception $e) {
print $e->getMessage();
die();
}
?>