为什么我们使用参数化查询?因为我们告诉它应接受哪种类型的参数(整数,字符串,......)。
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尝试使用存储过程。不确定我是否应该删除之前的参数化查询。
答案 0 :(得分:1)
不,您首次显示的表单是DYNAMIC QUERY
或prepared query
prepare("SELECT * FROM table WHERE id= ?")
bind_param("i", $id) //only accepts integer
因此,使用bind_param
,您可以使用$id
变量动态绑定参数值。
如果您通过传递id参数调用存储过程,则不需要构建动态查询。