Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/07/2004, 07:24
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Si vas a controlar el código de error que devuelve Mysql ante un evento como el de intentar duplicar una llave (un campo de con propieda "unique": unico) .. vendría bien usar la "@" delante de la función mysql_query() que vas a usar .. por qué sino, igual PHP va a generar un error por qué no se pudo ejecutar la función en cuestión:

Código PHP:
@mysql_query("INSERT .....");
if (
mysql_errno()==1062){
  
// Das tu error personalizado ...

A mi personalmente no me gusta "probocar" errores y ver su código . .prefiero la técnica de hacer un "SELECT" para contar el nº de registros que obtengo .. si hay 1 ya sé que existe mi registro (uso COUNT() para agilizar un poco más este tipo de consultas). No obstante uso igualmente "unique key" por si la BD es accedida por otro médio (ejemplo: directamente por un GUI para Mysql .. phpMyadmin o similares ..).

Dependiendo del nivel y registros de errores que se hagan (tanto de PHP como de Mysql) .. esos errores por "duplicados" seguirian igualmente aunmentando los "log's" de errores. Si hacemos la consulta SQL antes .. evitamos esto a consta de algo más de consumo de recursos del servidor (en cuanto a proceso) para averigüar dicho dato si ya existe (pero como comento .. con COUNT() se optimiza mucho este proceso a nivel de recursos consumidos).

Un saludo,

Última edición por Cluster; 20/07/2004 a las 10:33