我必须查询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;
}
谢谢你的建议。