Jump to content

PHP PDO


Air_Mike

Recommended Posts

Hello,

 

i would really appreciate if someone could help me here. It'a about calling oracle stored procedure with some input and output parameters.

 

I have this working using ADODB class, but now I need the same thing using PDO Extension. It's all ok when output parameter is some value accept cursor.

 

This is code working with ADODB:

 

$conn_thor = newADOconnection("oci8");
$conn_thor->connect(_connection parameters_);

$stmt = $conn_thor->PrepareSP("BEGIN PKG_THOR.GET_USER_ROLES_AUTH (:ulaz1, :ulaz2, :ulaz3, :crsr, :izlaz); END;");

$conn_thor->InParameter($stmt, $login, 'ulaz1');
$conn_thor->InParameter($stmt, $GLOBALS["apl_sifra"], 'ulaz2');
$conn_thor->InParameter($stmt, $_SERVER['REMOTE_ADDR'], 'ulaz3');
$conn_thor->OutParameter($stmt, $cur, 'crsr', -1, OCI_B_CURSOR);
$conn_thor->OutParameter($stmt, $izlaz, 'izlaz');
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
$array_user_role = $conn_thor->GetArray($stmt);

With this I have two outputs. $izlaz is integer, and $array_user_role i array of roles for user.

Now I need to do this using PDO.

try {
$conn_sso = new PDO(_connection parameters_);

$ulaz1 = 'admin';
$ulaz2 = 'A901';
$ulaz3 = $_SERVER['REMOTE_ADDR'];

$stmt = $conn_sso->prepare("CALL PKG_THOR.GET_USER_ROLES_AUTH (:ulaz1, :ulaz2, :ulaz3, :crsr, :izlaz)");

$stmt->bindParam(':ulaz1', $ulaz1, PDO::PARAM_STR);
$stmt->bindParam(':ulaz2', $ulaz2, PDO::PARAM_STR);
$stmt->bindParam(':ulaz3', $ulaz3, PDO::PARAM_STR);
$stmt->bindParam(':crsr', $crsr, ????here is the problem????);
$stmt->bindParam(':izlaz', $izlaz, PDO::PARAM_INT|PDO::PARAM_INPUT_OUTPUT , 4);

$stmt->execute();

echo "izlaz: " . $izlaz;

$conn_sso = null;
}
catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}

 

 

Thank You....

 

EDITED BY akitchin:  code tags are not only fancy and stylish, but they now increase fertility by 80%!  try them today!

Link to comment
https://forums.phpfreaks.com/topic/67236-php-pdo/
Share on other sites

I manage to do this with oci functions in PHP...

 

$ulaz1 = 'admin';
$ulaz2 = 'A901';
$ulaz3 = $_SERVER['REMOTE_ADDR'];

$conn_sso = oci_connect("log040", "log040", "logora");

$stmt = oci_parse($conn_sso, "BEGIN PKG_THOR.GET_USER_ROLES_AUTH (:ulaz1, :ulaz2, :ulaz3, :crsr, :izlaz); END;");

oci_bind_by_name($stmt, ":ulaz1", $ulaz1);
oci_bind_by_name($stmt, ":ulaz2", $ulaz2);
oci_bind_by_name($stmt, ":ulaz3", $ulaz3);

$curs = oci_new_cursor($conn_sso);

oci_bind_by_name($stmt, ":crsr", $curs, -1, OCI_B_CURSOR);
oci_bind_by_name($stmt, ":izlaz", $izlaz);

oci_execute($stmt);
oci_execute($curs);

oci_fetch_all($curs, $user_roles, "0", "-1", OCI_ASSOC+OCI_FETCHSTATEMENT_BY_ROW);

echo "izlaz: " . $izlaz;

print_r($user_roles);

oci_free_statement($stmt);
oci_free_statement($curs);
oci_close($conn);

 

I still don't know how to do this with PDO....  ;)

 

EDITED BY akitchin: code tags are the truth, the light, the way.

Link to comment
https://forums.phpfreaks.com/topic/67236-php-pdo/#findComment-337717
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.