Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在准备好的语句中设置_Php_Mysql_Mysqli_Prepared Statement - Fatal编程技术网

Php 在准备好的语句中设置

Php 在准备好的语句中设置,php,mysql,mysqli,prepared-statement,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,但没有任何运气 另一种方法是编写以下看起来很糟糕的内容: $stm

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

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

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