我可以获取多个不同的SQL语句在一次循环?在PHP中


Can I fetch multiple different SQL statements in one times loop? in PHP

我必须查询SQL-SERVER的查询和MYSQL的查询(有相同的结果格式,但它的差异数据库),但我想在PHP的一个while循环中调用它们,我能做到吗?

$mssql_query = mssql_query(..mssql..);
$mysql_query = mysql_query(..mysql..);
while( $mssql_rs = mssql_fetch_assoc($mssql_query)|| $mysql_sql = mysql_fetch_assoc($mysql_query) )
{               
    ..some action..
}

编辑:我只是有一个解决的答案。来自@Drew while(bContinue)

的想法

this my code

$mssql_query = mssql_query(..mssql..);
$mysql_query = mysql_query(..mysql..);
$continue = true;
while( $continue ){
    $ms_rs = mssql_fetch_assoc($mssql_query);
    $my_rs = mysql_fetch_assoc($mysql_query);
    if($ms_rs){ ..some action.. }
    if($my_rs ){ ..some action.. }
    $continue = $ms_rs|| $my_rs;
}

谢谢你的建议。

您可以在黑暗中拍摄并尝试使用每种data_seek口味,如果它们具有相同的行数和相同的列名。

思路是这样的/这里也有一些伪代码(当然是未经测试的):

$mssql_query = mssql_query(< the mssql query statement >);
$mysql_query = mysql_query(< the mysql query statement >);
$ms_num_rows = mssql_num_rows($mssql_query);
$my_num_rows = mssql_num_rows($mysql_query);
if($ms_num_rows === $my_num_rows) { // same number of rows on both result sets
    for($i = 0; $i < $my_num_rows; $i++) {
        mssql_data_seek($mssql_query, $i);
        mysql_data_seek($mysql_query, $i);
        $ms_row = mysql_fetch_assoc($mssql_query);
        $my_row = mysql_fetch_assoc($mysql_query);
        echo $ms_row['same_field_1'];
        echo $my_row['same_field_1'];
        // and others
    }
}

注意:当然,使用这些函数可能会收到弃用警告,这些函数很可能有它们的PDO对应项,您可以将它们移植到使用它们。

手工条目:

http://php.net/manual/en/function.mssql-data-seek.php
http://php.net/manual/en/function.mysql-data-seek.php

我刚刚有了答案。这对我很有效创意来自@Drew while($continue)

我的代码

$mssql_query = mssql_query(..mssql..);
$mysql_query = mysql_query(..mysql..);
$continue = true;
while( $continue )
{               
    $ms_rs = mssql_fetch_assoc($mssql_query);
    $my_rs = mysql_fetch_assoc($mysql_query);
                
    if($ms_rs){ ..some action.. }
    if($my_rs ){ ..some action.. }
    $continue = $ms_rs|| $my_rs;
}

谢谢你的建议。