como preguntar por una columna que comienza con una palabra

Rodrigo Fuentealba darkprox en gmail.com
Vie Feb 16 15:18:15 CLST 2007


El 16/02/07, Cristian Rodriguez <judas.iscariote en gmail.com> escribió:
> El 16/02/07, Esteban Flores <esflores en gmail.com> escribió:
> >
> > On 2/15/07, Ricardo Monsalve <ricmonsalve en hotmail.com> wrote:
> > > tampoco me funciona
> > > hay alguna otra forma?

Usar ADODB (http://adodb.sourceforge.net) para que tengas claro si la
consulta es la que falla u otra cosa.

$db = ADONewConnection('mysql');
if(!$db->Connect('localhost','root','password','basedatos'))
{
   die('Chuck Norris estuvo aqui; matando a un salmon blanco');
}

$db->debug = true;

> > Sacale el @, agrega la linea
> > error_reporting(E_ALL^E_NOTICE); al principio de la pagina
> > y envianos el error...
>
>
> agrega error_reporting(E_ALL); ....

> > Deberia funcionar asi:
> > //Si rut es varchar funciona asi... si es int sacale las comillas simples
> > $sql = "SELECT *
> >            FROM eventos e
> >            WHERE e.zona LIKE 'ABIERTO%' OR e.zona LIKE 'CERRADO%'
> >            AND e.rut = '$Cliente'"; //<---aqui
>
> Si "ahi" le agrega un agujero de seguridad gratis. ;P

como por ejemplo si $cliente = "1' or 1=1 --";

ademas, "SELECT *", por qué el asterisco? es mejor recuperar solamente
los campos que se requieren, porque nada te asegura que vendran
ordenados:

$sql = $db->Prepare('select e.codigo, e.nombre from eventos e where
e.zona like \'abierto%\' or e.zona like \'cerrado%\' and e.rut = ?');

$rs = $db->Execute($sql, array($cliente));

Con eso te proteges bastante más.

-- 
Rodrigo Fuentealba Cartes
Desarrollador de Sistemas Web
Registered User 387639 - http://counter.li.org



Más información sobre la lista de distribución PHP