【问题标题】:SET in prepared statement在准备好的语句中设置
【发布时间】:2014-05-19 12:09:48
【问题描述】:

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

【问题讨论】:

    标签: php mysql mysqli prepared-statement


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多