此问题在此处已有答案:
What's the differences between stored procedures, functions and routines?(5个答案)
Calling stored procedure with Out parameter using PDO(3个答案)
Create Stored Procedures with PDO in PHP(3个答案)
上个月关门了。
我在谷歌上搜索过,但没有找到任何我能理解的东西。
使用存储过程带来的性能提升是否显著?
我是否仍然希望将预处理语句与存储过程结合使用,或者它通常是一个或另一个?
我可以通过PHPMyAdmin创建存储过程并从那里管理它们吗?
对于像这样简单的东西,存储过程会是什么样子-
SELECT * FROM table a
INNER JOIN otherTable b
ON a.join_id=b.join_id
WHERE someVar = :boundParam
字符串
PHP如何工作(PDO)来调用它并绑定它的参数?
1条答案
按热度按时间ia2d9nvy1#
A procedure:
BEGIN ... END
语句的语句会出错。BEGIN ... END
语句,不会将$$
更改为$$
而不会出错。IN
、OUT
和INOUT
,也可以没有这些参数。IN
和INOUT
参数的值。OUT
和INOUT
参数向调用者返回零个或多个值。IN
参数的过程,我的答案和我的答案分别解释了OUT
和INOUT
参数,the doc详细解释了一个过程。例如,创建
test
表,如下所示:字符串
然后,插入
num
为2
的行,如下所示:型
现在,您可以创建
addition(IN value INT)
过程,将value
添加到num
,如下所示。*IN
参数IN value INT
可以从调用者获取值,您也可以使用value INT
而不使用IN
,这也被识别为IN
参数,基本上,你需要在创建过程时将默认的;
更改为类似$$
的东西,否则会出现错误,然后在创建过程后,您需要将$$
更改回;
,如下所示,我的答案解释了$$
,并且在创建过程时必须选择数据库否则会出现错误:的字符串
然后,您可以使用CALL语句调用
addition(3)
,然后将3
添加到num
,如下所示:型
或者,您可以设置the user-defined session variable,例如
@v
与3
,然后3
添加到num
,如下所示。* 用户自定义会话变量的初始值为NULL
:型
此外,您还可以使用用户定义的会话变量(例如
@v
)创建addition()
过程,而不使用IN
参数,如下所示:型
然后,您将
@v
与3
设置并调用addition()
,然后3
添加到num
,如下所示:型
并且,在下面的情况下,您可以创建
addition(IN value INT)
过程,而不会将$$
更改为$$
而不会出错:型