PHP - No tiene errores pero no guarda la imagen en DB

   
Vista:

No tiene errores pero no guarda la imagen en DB

Publicado por Sergio (20 intervenciones) el 15/06/2017 11:06:12
Monto un circo y me crecen los enanos.

No da ni un solo error pero no me guarda el registro.

Alguna sugerencia por favor.

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
<?php
 
//Conectamos la DB
$mysqli = new mysqli("p:localhost","root","","cf_db");
$mysqli->set_charset('utf8');
 
if (mysqli_connect_errno()) {
die("Error al conectar: ".mysqli_connect_error());
}
 
//Creamos las Variables
 
$nombreproduc =$_POST['nombreproduc'];
$categoria    =$_POST['categoria'];
$tipo         =$_POST['tipo'];
$descripcion  =$_POST['descripcion'];
$precio       =$_POST['precio'];
$stock        =$_POST['stock'];
$fecha        = date('y-m-d');
 
# Escapa caracteres especiales
$imagen  = $mysqli->real_escape_string(addslashes(file_get_contents($_FILES['imagen']['tmp_name'])));
$imagen1 = $mysqli->real_escape_string(addslashes(file_get_contents($_FILES['imagen1']['tmp_name'])));
$imagen2 = $mysqli->real_escape_string(addslashes(file_get_contents($_FILES['imagen2']['tmp_name'])));
$imagen3 = $mysqli->real_escape_string(addslashes(file_get_contents($_FILES['imagen3']['tmp_name'])));
 
 
// Los posible valores que puedes obtener de la imagen son:
//echo "<BR>".$_FILES["imagen"]["tmp_name"]; //nombre del archivo
//echo "<BR>".$_FILES["imagen"]["type"]; //tipo
//echo "<BR>".$_FILES["imagen"]["tmp_name"]; //nombre del archivo de la imagen temporal
//echo "<BR>".$_FILES["imagen"]["size"]; //tamaño
 
# Comprovamos que se haya subido un fichero
if (is_uploaded_file(@$_FILES["imagen"]["tmp_name"]) && is_uploaded_file(@$_FILES["imagen1"]["tmp_name"]) && is_uploaded_file(@$_FILES["imagen2"]["tmp_name"]) && is_uploaded_file(@$_FILES["imagen3"]["tmp_name"]))
{
# verificamos el formato de la imagen
if ($_FILES["imagen"]["type"]=="image/jpeg" || $_FILES["imagen"]["type"]=="image/pjpeg" || $_FILES["imagen"]["type"]=="image/png" &&
   $_FILES["imagen1"]["type"]=="image/jpeg" || $_FILES["imagen1"]["type"]=="image/pjpeg" || $_FILES["imagen1"]["type"]=="image/png" &&
   $_FILES["imagen2"]["type"]=="image/jpeg" || $_FILES["imagen2"]["type"]=="image/pjpeg" || $_FILES["imagen2"]["type"]=="image/png" &&
   $_FILES["imagen3"]["type"]=="image/jpeg" || $_FILES["imagen3"]["type"]=="image/pjpeg" || $_FILES["imagen3"]["type"]=="image/png") {
 
# Cogemos la anchura y altura de la imagen
//$info=getimagesize($_FILES["userfile"]["tmp_name"]);
//echo "<BR>".$info[0]; //anchura
//echo "<BR>".$info[1]; //altura
//echo "<BR>".$info[2]; //1-GIF, 2-JPG, 3-PNG
//echo "<BR>".$info[3]; //cadena de texto para el tag <img
 
# Agregamos la imagen a la base de datos
$sql = "INSERT INTO `tblProducto`(`Nombre`,`Categoria`,`tipo`,`Imagen`,`Imagen1`,`Imagen2`,`Imagen3`,`Descripcion`,`Precio`,`Stock`,`Fecha`) VALUES ('$nombreproduc','$categoria','$tipo',$imagen','$imagen1','$imagen2','$imagen3','$descripcion','$precio','$stock','$fecha')";
 
$mysqli->query($sql);
 
 
    ?>
      <script language="javascript">
      alert("El registro ha sido satisfactorio.");
window.location="../producto.php";
</script>
<?
 
}else {
 
 
?>
      <script language="javascript">
      alert("Error: El formato del archivo tiene que ser JPG o PNG.");
window.location="../producto-add.php";
</script>
<?
 
}
}
$mysqli->close();
?>

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
<form action="db-admin/añadir-registro-producto.php" method="post" enctype="multipart/form-data">
                    <fieldset>
 
 
                        <label>Nombre</label>
                        <input required id="nombreproduc" name="nombreproduc" class="form-control" placeholder="Nombre" value="">
 
                        <label>Categoría</label>
                        <select class="form-control" id="categoria" name="categoria">
                <option value="hombre">Hombre</option>
                <option value="mujer" selected>Mujer</option>
                <option value="niños" >Niños</option>
        </select>
 
<div class="form-group">
 
         <label>Tipo</label>
         <select class="form-control" id="tipo" name="tipo">
 
                <option value="colonia" selected>Colonias</option>
                <option value="gel">Geles</option>
                <option value="champu">Champus</option>
                <option value="desodorante">Desodorantes</option>
                <option value="cremas">Cremas</option>
                <option value="accesorios">Accesorios</option>
                <option value="ropaintima">Ropa Intima</option>
                <option value="hogar">Hogar</option>
                <option value="camisetas">Camisetas</option>
                <option value="pantalones">Pantalones</option>
         </select>
 </div>
                            <div class="form-group">
                                <label>Imagen</label>
                                <input required type="file" name="imagen" accept="file_extension|image/*">
                            </div>
 
                            <div class="form-group">
                                <label>Imagen</label>
                                <input required type="file" name="imagen1" accept="file_extension|image/*">
                            </div>
 
                            <div class="form-group">
                                <label>Imagen</label>
                                <input required type="file" name="imagen2" accept="file_extension|image/*">
                            </div>
 
                            <div class="form-group">
                                <label>Imagen</label>
                                <input required type="file" name="imagen3" accept="file_extension|image/*">
                            </div>
 
                            <label>Descripción</label>
                            <input required id="descripcion" name="descripcion" class="form-control" placeholder="Descripción" value="">
 
                            <label>Precio</label>
                            <input required id="precio" name="precio" class="form-control" placeholder="Precio" value="">
 
                            <label>Stock</label>
                            <input required id="stock" name="stock" class="form-control" placeholder="Stock" value="">
 
                            <br>
                            <button type="submit" class="btn btn-lg btn-outline btn-success">Añadir Producto</button>
 
                    </fieldset>
                </form>

Foto de la DB
https://drive.google.com/file/d/0Bxsw7ik_tMn9X0hfZEo2VWdXMFk/view?usp=sharing
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
Imágen de perfil de xve

No tiene errores pero no guarda la imagen en DB

Publicado por xve (6811 intervenciones) el 15/06/2017 13:04:28
En vez de poner esta linea:
1
$mysqli->query($sql)
pon algo así:
1
2
3
if (!$mysqli->query($sql)) {
    printf("Error: %s\n", $mysqli->error);
}

coméntanos, ok?
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
Imágen de perfil de Mauro

No tiene errores pero no guarda la imagen en DB

Publicado por Mauro (104 intervenciones) el 18/06/2017 01:05:25
No sé por qué no está dándote error, pero en la línea 51 tienes:

1
$sql = "INSERT INTO `tblProducto`(`Nombre`,`Categoria`,`tipo`,`Imagen`,`Imagen1`,`Imagen2`,`Imagen3`,`Descripcion`,`Precio`,`Stock`,`Fecha`) VALUES ('$nombreproduc','$categoria','$tipo',$imagen','$imagen1','$imagen2','$imagen3','$descripcion','$precio','$stock','$fecha')";

Nota que la variable $imagen no está bien delimitada (Sólo tiene la comilla que cierra)... eso en efecto debe estar rompiendo todo el SQL, ya que las variables que vienen detrás tampoco están siendo bien interpretadas...
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
Revisar política de publicidad