我需要用php
开发一个 Web 应用程序。对于登录过程,.通常我会使用带有 id 和密码的 select 语句,如果行返回,则成功登录。但是我想使用存储过程,不想从数据库中获取任何行,而是简单的boolean
值。PL/SQL
过程的签名如下。
procedure successful_login(cit_id in citizens.citizen_id%type,
pass in varchar2,v_login_successful out boolean)
我不会用代码膨胀页面,但过程v_login_successful
更改为 true 或 false,具体取决于 PL/SQL 中的成功登录。但我想从 PHP 调用此过程。如果我将 php 变量绑定到v_login_successful
参数并从 PHP 执行过程,PL/SQL 引擎会将v_login_successful
变量的更改版本返回给 PHP 吗?
PL/SQL 有布尔数据类型,但 SQL 没有。这意味着,您可以
- 在函数、过程、匿名块中使用它。
- 仅当它们在 PL/SQL 上下文中使用时,才将其用作过程和函数中的参数。
当你从 php 调用该过程时,它将是一个 sql 语句。你会得到,expression is of wrong type
例外。
相反,您可以将 CHAR(1)
(Y 或 N)或NUMBER(1)
(0 或 1)数据类型用于 out 参数。