同时执行两个查询

时间:2015-01-31 22:51:18

标签: php mysqli

我正在处理一个小的PHP脚本,我想在一个语句中使用两个mysqli查询。 这是两个查询:

$sql = ("select * from titles where id=$id")
$sql2 =("select * from titles where id=$id2") 

我希望以这种方式输出它们:

<li><span>RECORD FROM QUERY1</span><span>RECORD FROM QUERY2</span></li>

是否可以使用Mysqli和PHP执行此操作?

4 个答案:

答案 0 :(得分:0)

您可以使用Mullti Query

  

执行一个或多个由a连接的查询   分号。

但在您的示例中,您可以将其与OR结合使用。

$sql = "select * from titles where id=$id OR id=$id2"

答案 1 :(得分:0)

这是不可能的。您必须运行两个单独的查询。如果这是令您担心的性能,请不要担心,第二个查询将比前者快得多。

看这里=&gt; mysqli.multi-query

答案 2 :(得分:0)

我非常喜欢这样的问题。这使我有可能在这里发布随机猜测。 :-)

对不起专家,请不要太多投票。

@HafidaArhzaouy你的问题真的不清楚,看起来你甚至都没有尝试做某事。

所以你的问题可能是这样的:

亲爱的,我的代码运作良好:

$mysqli = new mysqli($host, $user, $password, $database);
if (mysqli_connect_errno()) {
    printf("mysqli connection error: %s\n", mysqli_connect_error());
    exit();
}
    $sth = $mysqli->prepare('select * from titles where id = ?' );
    $sth->bindParam('s', $id);
    $sth->execute();
    $result = $sth->fetch_result();
    $rows1 = $result->fetch_all();

    $sth = $mysqli->prepare('select * from titles where id = ?' );
    $sth->bindParam('s', $id2);
    $sth->execute();
    $result = $sth->fetch_result();
    $rows2 = $result->fetch_all();


    foreach($rows1 as $idx=>$item1) {
        echo "<li><span>RECORD FROM QUERY1 ".implode(',',$item1). "</span></li>";
        echo "<li><span>RECORD FROM QUERY2 ".implode(',',$rows2[$idx]). "</span></li>";
    }

但我想要像......

如果您已阅读所有评论,则可以看到大多数人只是不明白您为什么需要在一个查询中执行此操作。我也是。

2次查询有什么问题?

答案 3 :(得分:0)

简化您对SELECT * FROM titles的查询,其中id = $ id&amp;&amp; id = $ id2

如果这不是您想要的输出,请让每个人都清楚地了解问题,以便我们能够为您提供最佳答案。