| |||
Mostrar error 1062 de sql (registro duplicado) Buenas, les planteo mi problema, tengo un formulario de insercion de registros, pero quiero evitar que se inserte un, registro duplicado, para eso lo que ise fue que en la base de datos le puse clave unica, ojo no es clave primaria, es clave unica, al inviar el formulario todo funciona bien y no muestra ningun error mi pagina en php, pero se que lo hay pues inserto un registro que ya esta en la base de datos como clave unica, pero no me muestra el error, cuando el error deberia ser 1062, e probado con mysql_errno(), y no lo muestra mysql_error(), y no me muestra nada, quisiera saber si es posible detectar ese error de alguna forma y mostrarmelo en pantalla |
| |||
Respuesta: Mostrar error 1062 de sql (registro duplicado) Código PHP: |
| ||||
Respuesta: Mostrar error 1062 de sql (registro duplicado)
Código PHP:
Ver original Y esa variable de donde saldria? Me parece que nunca esta entrando a ese if |
| ||||
Respuesta: Mostrar error 1062 de sql (registro duplicado) creo que es más facil hacer la validacion con jquery desde el formulario durante el llenado y asi si el registro esta duplicado este lo indica o en tal caso crear una condicion que busque el registro primero antes de la inserción |
| ||||
Respuesta: Mostrar error 1062 de sql (registro duplicado) Claro, y si desactivan javascript entonces todo estará bien.
__________________ Y U NO RTFM? щ(ºдºщ) No atiendo por MP nada que no sea personal. |
| |||
Respuesta: Mostrar error 1062 de sql (registro duplicado) NSD, la variable es del formulario, y para los demas, el formulario y la insercion funcionan perfectamente, pero el problema aqui es que si inserto un registro duplicado actua talo y como si todo estubiera bien, y en la base de datos no se inserta porque el registro es registro unico, el problema es como hago que me muestre ese error que se muy bien que es el 1062?, sobre lo que dices de crear una funcion que compruebe antes de insertar, podrian mostrarme como si no es mucha molestia? |
| ||||
Respuesta: Mostrar error 1062 de sql (registro duplicado) Prueba igualando el metodo de error a una variable mysql_select_db($database_raylink, $raylink); $Result1 = mysql_query($insertSQL, $raylink); $varError = mysql_errno($raylink); // if( $varError == 1048 ) { // echo "<br /> //Ningun Campo debe quedar en blanco<br /> //"; // } else { // echo mysql_error(); // } // // if( $varError == 1062 ) { // echo "<br /> //Este producto ya exite en la base de datos<br /> //"; // } else { // echo mysql_error(); // } O Agregando el parametro al metodo en el if mysql_errno($raylink); // if( mysql_errno($raylink) == 1048 ) { // echo "<br /> //Ningun Campo debe quedar en blanco<br /> //"; // } else { // echo mysql_error(); // } // // if( mysql_errno($raylink) == 1062 ) { // echo "<br /> //Este producto ya exite en la base de datos<br /> //"; // } else { // echo mysql_error(); // } |
| |||
Respuesta: Mostrar error 1062 de sql (registro duplicado) Muchas gracias por contestar, efectivamente ya e guardado el error en variables, pero no muestra el error, es como si realmente no hubiera un error, ese es el dilema, que si alguien intentara ingresar un registro ya existe, no resivira ningun aviso que haga saber eso, e provado de muchas formas pero el error sigue sin aparecer |
| |||
Respuesta: Mostrar error 1062 de sql (registro duplicado) Ya solucione el error, muchas gracias a todos, el error estaba en la base de datos, sali de servidor y volvi a antrar, luego volvi a darle unico al registro, por alguna razon no servia y no se cual es, Gracias |
| ||||
Respuesta: Mostrar error 1062 de sql (registro duplicado) El error 1062 significa simple y sencillamente que estás intentando un INSERT donde los valores asignados a la PK ya existen en la base. Metodológicamente, lo más simple es que ANTES de ejecutar el insert hagas un SELECT COUNT(*) donde busques solo el valor de la PK en esa tabla . Si la consulta devuelve un valor diferente de cero (0) no insertas, caso contrario ejecutas el INSERT. De todos modos sin ver la estructura de la tabla en la base (el CREATE TABLE) sólo podemos suponer lo que está pasando. Por lo demás, trata de armas códigos más ordenados, con una clara separación de las funcionalidades, en especial de los formularios. Ayuda a la trazabilidad de los errores. Finalmente, te recomendaría que dejes de usar ese ab...to de la naturaleza que es esa función "GetSQLValueString", que todo el mundo copia, porque sólo sirve para no aprender a controlar los valores de las variables, y casi siempre la usan tan mal que terminan viniendo a pedir auxilio a este foro. En las pocas ocasiones en que he usado una función de ese tipo la he creado yo mismo, ya que no confío en esos codigos que todo el mundo replica como si fuesen buenos. DE todos modos esto último es tu decisión, no la mía.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
Etiquetas: |