2008-10-13 37 views
3

在asp.net中,您可以從一次調用數據庫中檢索MULTIPLE數據表。你可以在PHP中做同樣的事情嗎?PHP/MySQL中的多個數據表?

例子:

$sql ="select * from t1; select * from t2;"; 
$result = SomeQueryFunc($sql); 
print_r($result[0]); // dump results for t1 
print_r($result[1]); // dump results for t2 

你能不能做這樣的事?

回答

3

這被稱爲「多查詢」。 PHP中的mysql擴展沒有任何方法來啓用多重查詢。 mysqli擴展允許您使用多重查詢,但只能通過multi_query()方法。請參閱http://php.net/manual/en/mysqli.multi-query.php

不建議使用多查詢,因爲它可能會增加SQL注入攻擊造成的潛在損害。如果你使用多重查詢,你應該使用嚴格的代碼檢查習慣來避免SQL注入漏洞。

0

這應該可以用更新的MySQL和mysqli(改進的)php擴展。 我不確定是否有任何數據庫抽象層支持這一點。

參見相關MySQL docsPHP docs

0

如果你使用的是經典的MySQL,你不能。您可以創建一個函數,它看起來像

function SomeQueryFunc($queries) { 
    $queries = explode(';', $queries); 
    $return = array(); 
    foreach($queries as $index => $query) { 
     $result = mysql_query($query); 
     $return[$index] = array(); 
     while($row = mysql_fetch_assoc($result)) { 
      foreach($row as $column => $value) { 
       $return[$index][$column] = $value; 
      } 
     } 
    } 
    return $return; 
} 

預期

將工作