是否可以在准备好的声明中使用SET
?
以下内容不起作用,但显示了我想要实现的目标:
$stmt = $mysqli->prepare("SET @var = ?;
SELECT id... (big query that uses @var many times)");
$stmt->bind_param('i', $var);
我还试图使用multi_query
而没有任何运气。
另一种方法是编写以下看起来不好的内容:
$stmt->bind_param('iiiiiiii', $var, $var, $var, $var, $var, $var, $var, $var);
答案 0 :(得分:1)
最简单的方法就是在查询中初始化它。在某个地方,在查询的深处,执行:
select . . .
from . . . cross join
(select @var = ?) vars