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