PDA

Ver la Versión Completa : Eliminar registro de BD desde PHP


fide
29-01-2008, 06:11:19
Hola. Me pueden decir que tiene de error este codigo que no me quiere funcionar???


<?php

$dmes = $_GET['dmes'];
$dtitle = $_GET['dtitle'];
$dautor = $_GET['dautor'];

# printf('%s - %s - %s', $dmes, $dtitle, $dautor);

#?dmes=12&ign=1&dtitle=Edriannis%20marica&dautor=Fidel,%20Edriannis

$link = mysql_connect ("localhost:3306", "root");

mysql_select_db ("SIGECINT_DB");

$query = sprintf("DELETE FROM r_pn_acc WHERE mes = '%s' AND titulo = '%s' AND autor = '%s' ", $dmes, $dtitle, $dautor);
$result = mysql_query ($query);
print $query;

mysql_close($link);
?>


Gracias de ante manos.

dec
29-01-2008, 12:37:16
Hola,

El código anterior, aparentemente, debe funcionar. Puedes recurrir a "mysql_error()" (http://es.php.net/manual/es/function.mysql-error.php) para averiguar si la consulta SQL no se ejecutó correctamente. De pasada, sólo un par de observaciones:

1º, no validas ni escapas los datos de entrada, con lo que en principio estás expuesto a que te hagan "SQL injection", por ejemplo, o a que las cosas no vayan como tú esperas.

2º, generalmente se usa un identificador para borrar registros de la base de datos, un campo numérico "clave" que sirve para eso, entre otras muchas cosas. ¿Tú cómo lo ves?

cHackAll
29-01-2008, 22:03:28
Hola. Me pueden decir que tiene de error este codigo que no me quiere funcionar???

Bueno... estas obteniento el recurso del enlace de la conexion con la BD pero no veo que la estes utilizando... obtienes $link, esa varliable la debes utilizar al llamar a mysql_select_db & mysql_query.

Ej.$link =& mysql_connect ("localhost:3306", "root");
mysql_select_db($link, "SIGECINT_DB");
...

Saludos

fide
30-01-2008, 00:43:26
cHackAll amigo, el PHP con el que trabajo que es la version 5.2.5 Stable, no es necesário parsar a esas instrucciones el link de conexion. A mi me funciona bien lo de la conexion, lo de seleccion de bd e incluso lo de mostrar los datos que tiene esa tabla. El problema, como dije antes es que la instruccion SQL no me quiere correr.

Lo que si me di cuenta es lo que dice dec, que no valido los datos de entrada, pero bueno eso no es lo que me preocupa ahora. Tambien es cierto que no estoy usando mi campo id para diferenciar los registros. Es que ese code lo elabora apuradito, bajo las circunstancias en que me encontraba en ese momento, por ello no analice estos puntos.

Muchas gracias por la ayuda que me han brindado. Espero poder ayudarlos a ustedes tambien!

Hagen
31-01-2008, 13:08:54
Hola.

Deberias probar la consulta de forma aislada usando un manejador para MySQL,
para ver si la consulta se ejecuta correctamente.

lucasarts_18
31-01-2008, 14:01:44
Hola.

Deberias probar la consulta de forma aislada usando un manejador para MySQL,
para ver si la consulta se ejecuta correctamente.

Si, lo que a mí siempre me da buenos resultados es copiar la instrucción sql que lanzo por pantalla para luego copiarla a un manejador sql y así poder depurar. :)

Hasta Luego .-