Php 如何使用上一次查询的结果进行查询?

Php 如何使用上一次查询的结果进行查询?,php,mysqli,Php,Mysqli,这是我对数据库进行查询的代码示例: $query_db = $mysqli->prepare('SELECT DATA FROM db_table WHERE data = ?'); $query_db->bind_param('s', $data); $query_db->execute(); $query_db->store_result(); $query_db->bind_result($result_query1); $query_db->fetch

这是我对数据库进行查询的代码示例:

$query_db = $mysqli->prepare('SELECT DATA FROM db_table WHERE data = ?');
$query_db->bind_param('s', $data);
$query_db->execute();
$query_db->store_result();
$query_db->bind_result($result_query1);
$query_db->fetch();
$query_db->close();

我还有一个问题,如果我想用
$result\u query1
进行查询,我应该使用我在上面发布的相同代码。

您可以将这几行代码变成一个函数,并生成参数,而不是重分类,或者如果它是固定数量的SQL,那么对于

function loadData($previousData) {
    $query_db = $mysqli->prepare('SELECT DATA FROM db_table WHERE data = ?');
    $query_db->bind_param('s', $previousData);
    $query_db->execute();
    $query_db->store_result();
    $query_db->bind_result($result_query);
    $query_db->fetch();
    $query_db->close();
    return $result_query;
}

$dataSQL1 = loadData($data);
$dataSQL2 = loadData($dataSQL1);
$dataSQL3 = loadData($dataSQL2);
...
$dataSQLX = loadData($dataSQLX);

使用循环

$all_results = [];
$data = 1;
$query_db = $mysqli->prepare('SELECT id FROM db_table WHERE common_data = ?');
$query_db->bind_param('s', $data);
$query_db->bind_result($result_query);
while (true) {
    $query_db->execute();
    if (!$query_db->fetch()) {
        break;
    }
    $all_results[] = $result_query;
    $data = $result_query;
}
print_r($all_results);

您选择的列与在
WHERE
子句中指定的列相同。这有什么意义?它只会返回与
$data
@Barmar相同的值。这是我的问题的一个例子,我的db上有逻辑,我需要执行相同的查询,但对于上一个查询结果,我不知道我是否解释好为什么不能将上一个查询的结果放入bind_参数中
$query\u db->bind\u param('ss',$result\u query1,$data2)
通常,如果您想在另一个查询中使用上一个查询的结果,正确的解决方案是将表连接到单个查询中。如果您不编辑问题以添加必要的澄清,我们将无法帮助您。我只是在猜你到底想干什么。