Mysql
 sql >> база данни >  >> RDS >> Mysql

Може ли php PDO да извлече два набора резултати? И ако да, кое е по-добре 1 резултатен набор или повече от 1?

Да PDO може да извлече два (или повече) набора от редове, стига базата данни, която използвате, да го поддържа. Мисля, че MS SQL Server и MySQL и двете поддържат тази функционалност, но към момента на писане на SQLite не.

Функцията, която искате, е PDOStatement::nextRowset

Така че във вашия пример по-горе може да направите нещо като;

$sth = $dbh->prepare("SELECT * FROM tb1 WHERE cond1;
                      SELECT * FROM tb2 WHERE cond2");
$sth->execute();
$rowset1 = $sth->fetchAll();
$sth->nextRowset();
$rowset2 = $sth->fetchAll();

print_r($rowset1);
print_r($rowset2);

Напълно разумно е една съхранена процедура да върне повече от един набор от редове.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да вмъкнете няколко реда в sqlite android

  2. Защо find_in_set работи, но клауза IN

  3. Заменете неASCII символи в MYSQL

  4. може couchdb да прави цикли

  5. $stmt->close() срещу $stmt->free_result()