PHP - Error al actualizar datos en base de datos

 
Vista:
sin imagen de perfil

Error al actualizar datos en base de datos

Publicado por Kevin (24 intervenciones) el 07/03/2017 02:29:44
Buen día amigos, me encuentro con un problema al intentar actualizar datos en mi base de datos, ya lleva mas de un día :S sin poder entender que estoy haciendo mal, les dejo abajo el código y mi error, les agradezco su ayuda, perdón.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php  require_once 'header.php';
require_once 'phpfunctions/dbconfig.php';
	if(isset($_GET['edit_id']) && !empty($_GET['edit_id']))
	{
		$id = $_GET['edit_id'];
		$stmt_edit = $DB_con->prepare('SELECT * FROM productos WHERE idproducto =:uid');
		$stmt_edit->execute(array(':uid'=>$id));
		$edit_row = $stmt_edit->fetch(PDO::FETCH_ASSOC);
		extract($edit_row);
 
	if(isset($_POST['btn_save_updates']))
	{
		$nombretienda = "Test";
		$marca = $_POST['marca'];
		$nombreproducto = $_POST['nombreproducto'];
		$tamanopeso = $_POST['tamanopeso'];
		$categoria = $_POST['categoria'];
		$subcategoria = $_POST['subcategoria'];
		$descripcion = $_POST['descripcion'];
		$existencia = $_POST['existencia'];
		$precio = $_POST['precio'];
		$oferta = $_POST['oferta'];
		$status = $_POST['status'];
		$usuario = "kevinmelendez";
		$starsp = '5';
		$modificado = date("Y-m-d H:i:s");
		$imgFile = $_FILES['user_image']['name'];
		$tmp_dir = $_FILES['user_image']['tmp_name'];
		$imgSize = $_FILES['user_image']['size'];
		$id= $_GET['edit_id'];
 
		if($imgFile)
		{
			$upload_dir = 'user_images/'; // upload directory	
			$imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension
			$valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
			$userpic = rand(1000,1000000).".".$imgExt;
			if(in_array($imgExt, $valid_extensions))
			{
				if($imgSize < 2000000)
				{
					unlink($upload_dir.$edit_row['imagenproducto']);
					move_uploaded_file($tmp_dir,$upload_dir.$userpic);
				}
				else
				{
					$errMSG = "Perdon, tu imagen es mayor a 2MB, por favor carga una con menos peso";
				}
			}
			else
			{
				$errMSG = "Perdon, el formato que intentas cargar no esta permitido";
			}
		}
		else
		{
			// if no image selected the old image remain as it is.
			$userpic = $edit_row['imagenproducto'];
		}
 
 
		// if no error occured, continue ....
		if(!isset($errMSG))
		{
			$stmt = $DB_con->prepare('UPDATE productos
											SET marca=:umarca, 
										     nombreproducto=:uproducto,
										     tamanopeso=:utamano,
										     categoria=:ucategoria,
										     subcategoria=:usubcategoria,
										     descripcion=:udescripcion,
										     existencia=:uexistencia,
										     precio=:uprecio,
										     oferta=:uoferta,
										     status=:ustatus,
										     modificado=:umodificado,
										     usuario=:uusuario,
										     imagenproducto=:upic 
								       WHERE idproducto=:uid');
			$stmt->bindParam(':uide',$id);
			$stmt->bindParam(':umarca',$marca);
			$stmt->bindParam(':uproducto',$nombreproducto);
			$stmt->bindParam(':utamano',$tamanopeso);
			$stmt->bindParam(':ucategoria',$categoria);
			$stmt->bindParam(':usubcategoria',$subcategoria);
			$stmt->bindParam(':udescripcion',$descripcion);
			$stmt->bindParam(':uexistencia',$existencia);
			$stmt->bindParam(':uprecio',$precio);
			$stmt->bindParam(':uoferta',$oferta);
			$stmt->bindParam(':ustatus',$status);
			$stmt->bindParam(':upic',$userpic);
			$stmt->bindParam(':umodificado',$modificado);
			$stmt->bindParam(':uusuario',$usuario);
			if($stmt->execute()){ // *****LINEA DEL ERROR****
				?>
                <script>
				alert('Datos actualizados exitosamente');
				window.location.href='index.php';
				</script>
                <?php
			}
			else{
				$errMSG = "Perdon la información no se pudo actualizar!";
			}
 
		}
 
 
	}
 
?>

Error:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in C:\xampp\htdocs\Administration\edit.php:101 Stack trace: #0 C:\xampp\htdocs\Administration\edit.php(101): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\Administration\edit.php on line 101

Y estos son los campos de mi tabla

Nombre
idproducto
nombretienda
marca
nombreproducto
tamanopeso
categoria
subcategoria
descripcion
existencia
precio
oferta
status
imagenproducto
ratingproducto
visitasproducto
creado
modificado
usuariouso
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error al actualizar datos en base de datos

Publicado por Miguel (218 intervenciones) el 07/03/2017 02:49:39
Hola, en la línea 80 del código que muestras colocas el parámetro ":uide" cuando debería ser ":uid"...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Error al actualizar datos en base de datos

Publicado por Kevin (24 intervenciones) el 07/03/2017 03:00:27
Gracias, habia revisado el codigo muchas veces y no vi eso, sin embargo ya hice el cambio pero sigo teniendo el mismo error :S
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Error al actualizar datos en base de datos

Publicado por Kevin (24 intervenciones) el 07/03/2017 03:06:06
Perdón!!!!! y mil gracias, había otro error gracias a tu ayuda lo pude ver, el nombre del usuario en la tabla es usuariouso, lo modifique y ya funciono! mil gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar