Php 如何使用包含绑定参数的查询在mysql中创建存储过程?
我有一个搜索栏,我在代码中创建了一个查询,但现在我想为它创建一个存储过程,这样我就可以在需要时调用它,而不是在代码中创建查询 然而,由于使用了绑定参数,我似乎无法在mysql中创建存储过程<代码>如CONCAT(“%”,标题“%”)Php 如何使用包含绑定参数的查询在mysql中创建存储过程?,php,mysql,stored-procedures,parameters,binding,Php,Mysql,Stored Procedures,Parameters,Binding,我有一个搜索栏,我在代码中创建了一个查询,但现在我想为它创建一个存储过程,这样我就可以在需要时调用它,而不是在代码中创建查询 然而,由于使用了绑定参数,我似乎无法在mysql中创建存储过程如CONCAT(“%”,标题“%”) 有人知道我的存储过程应该是什么样子吗?我将如何调用它?该过程如下所示: CREATE PROCEDURE MyProc(IN in_title TEXT) BEGIN SELECT p.postID, p.title, p.tagID, p.content, p.dat
有人知道我的存储过程应该是什么样子吗?我将如何调用它?该过程如下所示:
CREATE PROCEDURE MyProc(IN in_title TEXT)
BEGIN
SELECT p.postID, p.title, p.tagID, p.content, p.date, p.postImage, u.username
FROM user as u inner JOIN user_post as UP on u.userID=up.userID inner
JOIN post as p ON up.postID=p.postID
WHERE p.title LIKE CONCAT('%', in_title, '%');
END
请小心将proc的输入参数命名为与表中任何列不同的名称,否则可能会得到意外的结果
您不需要在此过程中使用预先准备好的语句。只需在SQL语句的表达式中使用过程参数
处理结果不需要在进程中写入任何游标。MySQL进程对SELECT语句执行的默认操作是返回其结果
您可以通过以下方式从PHP调用它:
$req = $db->prepare("CALL MyProc(:title)");
所有其余的PHP代码都是相同的
坦白地说,我不会为这个程序费心。它并不能真正帮助您减少代码。但它确实:
- 让您学习一种新的程序代码语言
- 使应用程序部署复杂化
- 有可能将更多的处理负载推到数据库服务器上
$req = $db->prepare("CALL MyProc(:title)");