在 asp.net 中,您可以通过对数据库的一次调用来检索 MULTIPLE 数据表。你能在php中做同样的事情吗?
例子:
$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
你能做这样的事情吗?
这称为“多查询”。PHP 中的 mysql 扩展没有任何方法来启用多查询。mysqli 扩展确实允许您使用多查询,但只能通过 multi_query() 方法。见http://php.net/manual/en/mysqli.multi-query.php
不建议使用多查询,因为它会增加 SQL 注入攻击造成的潜在破坏。如果你使用多查询,你应该使用严格的代码检查习惯来避免 SQL 注入漏洞。
PDOStatement::nextRowset()
似乎是你所追求的。
如果您使用的是经典 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;
}
这将按预期工作