SET准备好的声明

时间:2014-05-19 12:09:48

标签: php mysql mysqli prepared-statement

是否可以在准备好的声明中使用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);

1 个答案:

答案 0 :(得分:1)

最简单的方法就是在查询中初始化它。在某个地方,在查询的深处,执行:

select . . .
from . . . cross join
     (select @var = ?) vars