Re: do while + mysql
| From: | @ndrés | Date: | Mon, 31 Mar 2014 19:49:52 +0000 |
| Subject: | Re: do while + mysql | ||
| References: | 1 2 3 4 | Groups: | php.general.es |
| Request: | Send a blank email to general-es+get-65643@lists.php.net to get a copy of this message | ||
Su sitio queda muchísimo más expuesto a ataques como SQL injections y XSS.
Ud le está dejando la corroboración de los datos a la capa de presentación.
Si el día de mañana quisiera migrar de PHP a otra tecnología (ej Ruby)
tiene que migrar todo el código de acceso a datos. Lo mismo pasa si
quisiera cambiar de BD, tiene que reescribir y probar la capa de
presentación.
Seguridad, mantenibilidad y claridad. Por esas tres razones es mala idea.
2014-03-28 16:48 GMT-06:00 El Ale... <alexissaucedo@gmail.com>:
> muchisimas gracias a todos por u tiempo me sirvio bastante! andres por que
> decis q no es una buena idea?.
>
> Saludos!
>
>
> El 27 de marzo de 2014, 3:06, @ndrés <ameseguer@gmail.com> escribió:
>
> > Hacer una consulta directa a una BD es muy mala idea. Store procedures.
> >
> >
> > 2014-03-26 19:09 GMT-06:00 Philipp Keweloh <skunk1@gmail.com>:
> >
> > El 26 de marzo de 2014, 21:56, El Ale... <alexissaucedo@gmail.com>
> >> escribió:
> >>
> >> > Buenas tardes amigos, les traigo una consulta por que la verdad que
> hace
> >> > rato que vengo con esto "atandolo con alambre" pero ahora necesito una
> >> > solucion aunque no la encuentro, tengo una llamada a mysql por ejemplo
> >> "no
> >> > me reten si esta mal escrita" jaja:
> >> >
> >> > $query = mysql_query(SELECT * FROM db WHERE status='1');
> >> > if($row=mysql_fetch_array($query){
> >> > echo $row[nombre];
> >> > mysql_query(UPDATE tabla SET status='2' WHERE
> >> > id='6'")
> >> > }
> >> >
> >> > entonces recoje los datos segun su id y si este es = a 1 lo trae sino
> no
> >> > niega, ahora yo a esto lo quiero hacer recorrer toda la base entonces
> >> pense
> >> > hacerlo con do while, ahora yo lo que solia hacer es
> >> >
> >> > do{
> >> > //hacer algo
> >> > }
> >> > while($query=TRUE)
> >> >
> >> > (supongamos) entonces cuanod ve un status 1 lo trae y lo renombre 2
> asi
> >> no
> >> > vuelve a traerlo pero jamas me respeta el $query=TRUE si este no es
> >> > verdadero sigue igual al bucle y jamas para, ¿alguno sabe que puedo
> >> estar
> >> > haciendo mal?.
> >> > Espero no haberlos mareado.
> >> >
> >> > Saludos!
> >> >
> >>
> >> Usa mysql_num_rows(),
> >> http://es.php.net/mysql_num_rows
> >>
> >> ejemplo:
> >>
> >> do{
> >> $query = mysql_query("SELECT * FROM db WHERE status='1' LIMIT 1");
> >> if($row=mysql_fetch_array($query){
> >> echo $row['nombre'];
> >> mysql_query("UPDATE tabla SET status='2' WHERE
> >> id='6'")
> >> }
> >> }
> >> while(mysql_num_rows($query));
> >>
> >> Y no seas bestia y ponle un LIMIT 1 si usas un while.
> >>
> >> Espero te sirva.
> >>
> >> Saludos,
> >>
> >> --
> >> Philipp Keweloh
> >>
> >
> >
> >
> > --
> > Andrés Meseguer Rojas
> >
>
--
Andrés Meseguer Rojas