retorna VALOR DE 0
pido su ayuda por que tengo un problema y nn se como solucioarlo,
el detalle aqui es que deseo obtener el la clave de un trabajador(personal) a partir de su nombre
los datos que tengo en la bd son los siguientes
para eso cree este metodo
y lo probe en el entorno de escritorio y si me funciona
se usa de la siguiente manera
y lo que me imprimiría en caso de recibir el nombre de alma como parámetro
la clave del personal:Alma es 8
me regresaria el valor de 8, en la clase si lo hace
pero a la hora de ejecutarlo en un JSP
solo me regresa el valor de 0 y no por que lo hace
por ejemplo lo ejecuta asi
y de este codigo lo se imprime es
contactoNombre: Alma
personalResponsable: 0
largo: 4 nombreAlmaclave: 0
y siempre valor que mande como parámetro siempre me retorna cero(0)
si alguien me puede ayudar se lo agradeceré
- Inicie sesión o regístrese para enviar comentarios
Quizá te estas conectando a
Quizá te estas conectando a otra base de datos.
Por cierto que va a pasar cuando el nombre sea:
?
Te va a devolver el primer registro que generalmente es el del admin.
Use prepared statements
antes que nada
NO CONCATENES SQL, te haces vulnerable a ataques de inyección de SQL. Y no quieres que te inyecten SQL o sí?
Piensa lo que pasa si estás capturando el nombre de una forma en donde un usuario (que puedo ser yo) teclea el nombre a buscar. Qué pasa si tecleo como nombre
? Pues tiro tu tabla.
Por eso debes usar Statements parametrizados.
Con eso ya puedes tener una persona llamada
y la puedo buscar y me la vas a devolver.
Probablemente lo que está pasando con tu JSP es que se pierde en el camino el nombre que teclearon en la forma, porque lo capturas mal o lo que sea, y entonces le pasas un nulo a tu método, y cuando estás concatenando cadenas con
(otra mala práctica), si pasas un
se concatena "null". Por eso te encuentra el registro con clave 0.
PEBKAC
Ja ja ja por cierto ya vi cual es el problema: PEBKAC
Línea 11:
Linea 18:
Seguramente tienes una variable de clase que se llama:
y como no la usas su default es 0.
:) :) y tan tan..
Otra pregunta que te hace pensar que si la primera vez no funciona la segunda si lo hará?Si vas a imprimir un valor que ya calculaste, no vale la pena volverlo a calcular, simplemente usa la variable que ya creaste.
Saludos!
SQL Injection
Chécate este post que hizo @ezamudio:
Performance
Oscar tiene razón, estás haciendo DOS llamadas a la función, por lo tanto para presentar un dato, haces DOS consultas a la base de datos. Eso es innecesario.
Y sí, el método está pésimo, guardas la clave en una variable y devuelves otra variable...
Gracias
ya lei el post recomendaron , como siempre gracias por su ayuda, de ustedes se aprende mucho de nuevo mil gracias, que bueno que existen comunidades como esta