我有一點麻煩工作如何使用PHP,並調用Oracle存儲過程。PHP與Oracle存儲過程
直接在SQL開發人員運行以下命令給我我需要的結果:
variable O_username varchar2;
EXECUTE LOGINADMIN('John','John', 'Attractions', :O_username);
print O_username;
但是在PHP我有麻煩我需要的結果。這是我的PHP代碼。
include 'connection.php';
$username = ($_POST['uname']);
$password = ($_POST['pass']);
$role = ($_POST['admin_role']);
$query = "EXECUTE LOGINADMIN(:bind1,:bind2, :bind3, :bind4);
";
oci_bind_by_name($stmt, ":bind1", $username);
oci_bind_by_name($stmt, ":bind2", $password);
oci_bind_by_name($stmt, ":bind3", $role);
oci_bind_by_name($stmt, ":bind4", $result, 50);
$stmt = oci_parse($conn, $query);
oci_execute($stmt);
while ($row=oci_fetch_row($stmt))
$count = oci_num_rows($stmt);
ECHO $stmt;
ECHO $result;
echo OCI_RESULT ($stmt);
if ($count > 0 && $role == 'Attractions') {
echo ("<SCRIPT LANGUAGE='JavaScript'>
window.alert('Logged Succesfully!')
window.location.href='attractionshome.php'
</SCRIPT>");
$_SESSION['attractionlogin'] = $username;
exit();
它看起來像我有一些麻煩得到輸入,所以$結果可以看到有一個變量。
謝謝你,
你好感謝你的幫助非常感謝。但是我已經將綁定下面的oci_execute。還添加了$ maxlength。但是我略微不清楚應該爲$ maxlength定義什麼。你能否提供一個例子?正在返回的數據類型是nvarchar2大小50. –
@WAQASSHABIR來自示例I鏈接的註釋:_「第二個過程參數是一個OUT綁定。默認類型將是一個字符串類型,因此綁定長度爲40意味着至多將返回40位數字。「_。如果返回字段的大小爲50,我會說的'$ maxlength'使用50(但你要測試這個當然)。 – timclutton
嗨蒂姆,仍然沒有運氣我已經更新了我的代碼。感謝 –