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)
通常,如果您想在另一个查询中使用上一个查询的结果,正确的解决方案是将表连接到单个查询中。如果您不编辑问题以添加必要的澄清,我们将无法帮助您。我只是在猜你到底想干什么。