使用带参数化查询的存储过程。它是什么意思?

时间:2015-12-12 22:28:23

标签: mysql sql stored-procedures parameterized-query

为什么我们使用参数化查询?因为我们告诉它应接受哪种类型的参数(整数,字符串,......)。

prepare("SELECT * FROM table WHERE id= ?")
bind_param("i", $id)  //only accepts integer

另一方面,我们已经告诉存储过程它应该接受什么类型的输入

CREATE PROCEDURE select(IN id INT) //only int as id
BEGIN
  SELECT * FROM table WHERE id =id;
END //

那么在调用存储过程之后编写参数化查询的含义是什么?

注意:使用mysql尝试使用存储过程。不确定我是否应该删除之前的参数化查询。

1 个答案:

答案 0 :(得分:1)

不,您首次显示的表单是DYNAMIC QUERYprepared query

prepare("SELECT * FROM table WHERE id= ?")
bind_param("i", $id)  //only accepts integer

因此,使用bind_param,您可以使用$id变量动态绑定参数值。

如果您通过传递id参数调用存储过程,则不需要构建动态查询。