SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: zuzito76 en Martes 2 de Octubre de 2012, 11:52

Título: Problema inserción en bd
Publicado por: zuzito76 en Martes 2 de Octubre de 2012, 11:52
Hola Amigos. Tengo un problema un poco absurdo. Resulta que tengo una aplicación php que funciona

correctamente, es decir, me hace bien las inserciones y demás. Pero guardé php.ini y httdocs.conf,

desinstalé xampp (apache + mysql + filezilla) y lo volví a instalar (la misma versión), copié mis

archivos de configuración (php.ini y httdocs.conf) en los directorios oportunos, copié la página de

nuevo con la aplicación php (tal cual lo tenía antes, sin modificar nada) y ahora no me hace las

inserciones. El código es el siguiente:

//        CREACIÓN DE LA TABLA (Lo hace satisfactoriamente):

Creacion.php:

 
$conexion=mysql_connect($_SESSION["servidor"],$_SESSION["login"],$_SESSION["contrasenna"]) or die

("Ha sido imposible realizar la conexión");
   mysql_select_db($_SESSION["BBDD"], $conexion) or die ("Imposible abrir base de datos");

$crear="CREATE TABLE IF NOT EXISTS ". $_SESSION['tablaArticulos'] . " (";
$crear.="cod INT PRIMARY KEY )  ";

mysql_query($crear,$conexion) or die ("Imposible crear tabla");

mysql_close();


//  INSERCIÓN EN LA TABLA (Aquí está el problema):


Insercion.php



$conexion=mysql_connect($_SESSION["servidor"],$_SESSION["login"],$_SESSION["contrasenna"]) or die

("Ha sido imposible realizar la conexión");
mysql_select_db($_SESSION["BBDD"], $conexion) or die ("Imposible abrir base de datos");

$cod=1; // por probar
$inserc="INSERT INTO " . $_SESSION['tablaArticulos'] ." VALUES('$cod')";

mysql_query($inserc) or die ("Imposible realizar inserción");



Obtengo el error: Imposible realizar inserción...
Es la primera inserción que intento hacer tras la reinstalación de xampp.Anteriormente me

funcionaba correctamente. ¿Alguien sabe a qué diantres puede deberse?
Muhas Gracias. Saludos.
Título: Re:Problema inserción en bd
Publicado por: RadicalEd en Miércoles 3 de Octubre de 2012, 05:20
$cod es un entero, prueba a dejarlo sin comillas
Título: Re:Problema inserción en bd
Publicado por: zuzito76 en Miércoles 3 de Octubre de 2012, 12:39
Hola Edo,
Aunque es muy buena respuesta pues tienes razón, ya que la forma correcta de insertar las variables enteras es sin comilla, curiosamente a mí me funcionaba de las dos maneras (de ahí que lo haya dejado con comillas) , con comillas y sin comillas, pero ahora no puedo insertar de ninguna de las dos formas, ni con comilla ni sin comillas, pues lo he probado.
Muchas gracias por tu respuesta. Un saludo.
Título: Re:Problema inserción en bd
Publicado por: RadicalEd en Jueves 4 de Octubre de 2012, 04:53
Ok, cuando no puedo ver los errores de mis aplicaciones entonces imprimo los querys y lo pruebo directamente en el mysql, prueba con un echo $inserc; y prueba directamente el código en el mysql y verás que error puedas tener
Título: Re:Problema inserción en bd
Publicado por: zuzito76 en Jueves 4 de Octubre de 2012, 11:53
Hola Edo,
El resultado de mysql_error() es el siguiente:
"Column count doesn't match value count at row 1" .
¿Sabes a qué puede deberse?
Muchas Gracias. Un saludo.
Título: Re:Problema inserción en bd
Publicado por: zuzito76 en Jueves 4 de Octubre de 2012, 12:16
Solucionado!!
He añadido los campos que voy a insertar en la instrucción y ahora funciona correctamente, es decir añadiendo: (cod_art).
Ahora la instrucción queda así:

$inserc="INSERT INTO " . $_SESSION['tablaArticulos'] ."(cod_art) VALUES('$cod')";

mysql_query($inserc) or die ("Imposible realizar inserción");

Va OK.
Gracias y Saludos.
Título: Re:Problema inserción en bd
Publicado por: RadicalEd en Sábado 6 de Octubre de 2012, 17:30
Respondo tarde :P el mismo error te estaba mostrando que la cantidad de campos que estabas enviando en el insert into no era la misma cantidad que hay en la tabla, con la que hiciste de agregar el campo antes de el values es una buena forma de arreglarlo ya que le estás diciendo al insert into que campos vas a agregar, debes tener en cuenta que eso te sirve solo para los campos que aceptan datos NULL, entonces si creas otra tabla con un campo NOT NULL y haces eso, te va a sacar el error de que el campo no acepta datos nulos