让我解释一下。存储过程内部的SQL查询与从PHP执行的SQL不同吗?
我使用了大量SELECT一句有多个我的PHP代码中加入。这是很大的,因为一些连接从第一表(东西一些值取决于像if table1.column_a=1 then alias_b=table2.column_a, if table1.column_a=2 then alias_b=table3.column_b, ...)
因为我从我的html
形式发送条件可以动态地改变(有时它可能只是有some_date>='2017/09/01'
,但它可能会变成更复杂的东西像some_date>='2017/09/01'
和(名称,如J%on
不sec_name='Doe'
)...“)。
我接到让一个存储过程此查询的指导和更多的时间,我需要分析这个我不能找到使这个动态查询某种方式没有把它串入存储过程和接收WHERE条件作为存储过程parametter(在存储过程中,我有财产以后像SET @sql = CONCAT('SELECT ... JOIN ... JOIN... WHERE ',param_condition); PREPARE stmt FROM @sql;...")
我的问题是...这是一样的发送从sql
从PHP?
如果您需要发送实际的SQL查询的部分存储过程,那么你做错了什么(这将是一个痛苦的调试)。如果你有不同的情况,那么你可以为这些情况创建不同的存储过程,并简单地调用当时相关的那个。或者,根据输入变量,使程序本身决定要执行的操作。 –
@MagnusEriksson实际上我正在构建我的PHP代码中的SQL,但正如我所提到的,我收到了一条指令来创建一个存储过程。我认为存储过程和动态查询是完全不相关的两件事情。我的PHP模块的目标是允许用户以不同的方式查询信息,这些信息可能适用于使用where clausule内部的一个或多个标准的任何必要条件。欢迎任何其他方法推荐。谢谢。 – FoxEdu
_“我收到了指令”_--来自谁和为什么? –