Jump to content
Wilian Fiabani

Numero de linhas de consulta com PDO

Recommended Posts

Pessoal, alguém ai sabe me informar se existe alguma propriedade do objeto PDO que informe o número de linhas de uma consulta?

tipo o mysql_num_rows($result_set), só que dentro da PDO, tipo um $conn->num_rows ?

Share this post


Link to post
Share on other sites

PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object.

 

If the last SQL statement executed by the associated PDOStatement was a SELECT statement, some databases may return the number of rows returned by that statement. However, this behaviour is not guaranteed for all databases and should not be relied on for portable applications.

 

ou seja, teste kra...

Share this post


Link to post
Share on other sites

PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object.

 

If the last SQL statement executed by the associated PDOStatement was a SELECT statement, some databases may return the number of rows returned by that statement. However, this behaviour is not guaranteed for all databases and should not be relied on for portable applications.

 

ou seja, teste kra...

ou seja, se postei é pq já tentei e não deu certo. Mas tudo na vida tem solução! sim, ela estava debaixo de meu nariz! nada mais fácil do que dar um count() ou sizeof() no array de objetos retornado pelo método fetchAll(). (E eu me preocupando com o método fetch() http://forum.imasters.com.br/public/style_emoticons/default/blush.gif ) Mas bem que essa PDO poderia ter algun atributo do tipo $result_set->nrw, mas tudo bem hj, varrendo um pouco a api ele aparecerá!

Share this post


Link to post
Share on other sites

O codigo pronto e esse aqui:

 

 

// conectar com o BD
require_once '../conectar_bd.php';

//Preparar a seleção que no nosso caso e todos por causa do * na tabela foto nomeu caso
$sql_1 = $dsn->prepare("SELECT * FROM foto");

//este e usado para executar a pesquisa a cima, no caso de voces estranhar esse codigo e por que esta em PDO rs, tem mais e pra voce escrever execute e nao executar.
$sql_1->execute();

//Aqui voce é a mesma coisa que o num_rows vai voltar se tudo ok 1
$trg = $sql_1->rowCount();

Share this post


Link to post
Share on other sites

haha é uma cilada bino!

Share this post


Link to post
Share on other sites

Queridos, o próprio manual diz que não é confiável utilizar rowCount para SELECT. Parem de teimar, cacilda!

Intereçante isso passo despercebido por mim falem mais sobre isso por favor

Share this post


Link to post
Share on other sites

putz, porque certas modernidades tem que ser tão complicadas... Era tão fácil com mysql_num_rows($res) e fim de conversa. Agora, conforme diz o Evandro, e de fato olhei no manual do php, além de não dar segurança na resposta para alguns banco de dados, mesmo assim, se quiser tentar a sorte, tem que escrever uns codigos complicados...

já que com PDO tem que fazer um laço for, para simular o mysql_fetch_array, então dentro deste while é só colocar um contador, coloca no dentro do laço for um $linhas++;

Share this post


Link to post
Share on other sites

putz, porque certas modernidades tem que ser tão complicadas... Era tão fácil com mysql_num_rows($res) e fim de conversa. Agora, conforme diz o Evandro, e de fato olhei no manual do php, além de não dar segurança na resposta para alguns banco de dados, mesmo assim, se quiser tentar a sorte, tem que escrever uns codigos complicados...

já que com PDO tem que fazer um laço for, para simular o mysql_fetch_array, então dentro deste while é só colocar um contador, coloca no dentro do laço for um $linhas++;

O problema é que "certas modernidades" evitam certas atrocidades, quantos sistemas eu peguei com tabelas gigantescas em que alguém ia lá e fazia:

SELECT * FROM tabela

Apenas para depois usar o mysql_num_rows... um absurdo de consumo de recursos. Onde dá pra fazer a mesma coisa usando um simples COUNT e retornando apenas 1 simples linha, mais simples, mais rápido e mais fácil.

Além do que, lembre-se PDO tem que se virar com uma miríade de BDs, se você deseja algo direcionado ao MySQL, basta usar o mysqli, que não por acaso tem o mysqli_num_rows.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.