PHP - usar correctamente INSERT INTO en PDO

   
Vista:
Imágen de perfil de ccessaro

usar correctamente INSERT INTO en PDO

Publicado por ccessaro (10 intervenciones) el 21/01/2016 02:18:46
Buenas Noches!
Soy novato y tengo un script que tomo la foto usando webcam.js y convierto la imagen tipo blob a una .jpg luego la guerdo en una carpeta alli todo muy bien, pero cuando quiero guerdarla en una base de datos me dice que Fatal error: Class 'PDO' not found in D:\AppServ\www\fotos\almacenar_disco.php on line 28 la linea 28 es esta: $dbh = new PDO("mysql: host=localhost; dbname=pruebas", "root", "1234");

esta es la base de datos:
1
2
3
4
5
6
CREATE TABLE `webcam_disco` (
  `no_proceso` varchar(13) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Número CUI del Documento Personal de Identificación',
  `nombre` varchar(45) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Nombre de la persona',
  `img` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Nombre de la imagen almacenada en el sistema de archivos/disco',
  PRIMARY KEY (`nombre`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

este es el form:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form action="almacenar_disco.php" method="post" enctype="multipart/form-data">
                    <div id="pre_take_buttons">
                        <!-- This button is shown before the user takes a snapshot -->
                        <input type="hidden" id="imagen" name="imagen" value=""/>
                        <label for="nombre">Nombre</label>
                        <input type="text" id="nombre" name="nombre"/>
                        <br/>
                        <label for="no_proceso">Proceso</label>
                        <input type="text" id="no_proceso" name="no_proceso"/>
                        <br/>
                        <input class="button" value="Tomar foto" onclick="preview()" type="button">
                    </div>
                    <div id="post_take_buttons" style="display:none">
                        <!-- These buttons are shown after a snapshot is taken -->
                        <input class="button" value="Tomar otra" onclick="cancel_preview()" type="button">
                        <input class="button" type="submit" value="Enviar" onclick="capturar()"/>
 
                    </div>
                </form>

este es el codigo php para hacer lo anterior:
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
<?php
 
	//require_once ('conexion.php');
 
$imagen_decodificada = base64_decode(filter_input(INPUT_POST, 'imagen'));
$no_proceso = filter_input(INPUT_POST, 'no_proceso', FILTER_SANITIZE_SPECIAL_CHARS);
$nombre = filter_input(INPUT_POST, 'nombre', FILTER_SANITIZE_SPECIAL_CHARS);
$id_estado = 1;
date_default_timezone_set("America/Bogota");
$fecha = date("dmY");
$tiempo = date("hi");
$img = $no_proceso ._. $id_estado ._. $fecha ._. $tiempo . _ . $nombre . ".jpg";
 
 
try {
	    <?php
 
	//require_once ('conexion.php');
 
$imagen_decodificada = base64_decode(filter_input(INPUT_POST, 'imagen'));
$no_proceso = filter_input(INPUT_POST, 'no_proceso', FILTER_SANITIZE_SPECIAL_CHARS);
$nombre = filter_input(INPUT_POST, 'nombre', FILTER_SANITIZE_SPECIAL_CHARS);
$id_estado = 1;
date_default_timezone_set("America/Bogota");
$fecha = date("dmY");
$tiempo = date("hi");
$img = $no_proceso ._. $id_estado ._. $fecha ._. $tiempo . _ . $nombre . ".jpg";
 
 
try {
	    $dbh = new PDO("mysql: host=localhost; dbname=pruebas", "root", "realtek");
 
    $query = ("INSERT INTO webcam_disco"
            . "(nombre, no_proceso, img)"
            . "values (:nombre, :no_proceso, :img)");
 
    $query->bindParam(':no_proceso', $no_proceso);
    $query->bindParam(':nombre', $nombre);
    $query->bindParam(':img', $img);
    $query->execute();
 
 
    $results = file_put_contents("imagenes/" . $img, $imagen_decodificada);
    if (!$results) {
        die("No se guardo la imagen.");
    }
 
    echo "Datos guardados.";
 
    $dbh = null;
 
} catch (PDOException $e) {
    echo $e->getMessage();
}
?> = new PDO("mysql: host=localhost; dbname=pruebas", "root", "realtek");
 
    $query = ("INSERT INTO webcam_disco"
            . "(nombre, no_proceso, img)"
            . "values (:nombre, :no_proceso, :img)");
 
    $query->bindParam(':no_proceso', $no_proceso);
    $query->bindParam(':nombre', $nombre);
    $query->bindParam(':img', $img);
    $query->execute();
 
 
    $results = file_put_contents("imagenes/" . $img, $imagen_decodificada);
    if (!$results) {
        die("No se guardo la imagen.");
    }
 
    echo "Datos guardados.";
 
    $dbh = null;
 
} catch (PDOException $e) {
    echo $e->getMessage();
}
?>

si alcodigo anterior le quito desde
1
2
3
4
5
6
7
8
9
10
$dbh = new PDO("mysql: host=localhost; dbname=pruebas", "root", "realtek");
 
    $query = ("INSERT INTO webcam_disco"
            . "(nombre, no_proceso, img)"
            . "values (:nombre, :no_proceso, :img)");
 
    $query->bindParam(':no_proceso', $no_proceso);
    $query->bindParam(':nombre', $nombre);
    $query->bindParam(':img', $img);
    $query->execute();

este me funciona solo guardando la foto (imagen .jpg) y cuando quiero guardarlo en labase de datos como dije anteriormente fatal error gracias.
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 ccessaro

usar correctamente INSERT INTO en PDO

Publicado por ccessaro (10 intervenciones) el 21/01/2016 02:57:12
YA pase del error Class 'PDO' not found y descomente la extension extension=php_pdo.dll y extension=php_pdo_sqlite.dll que son las unicas que aparecen en el archivo php.ini pero me sale could not find driver estoy utilizando APPSERV 6.0 SI me pudieran ayudar 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
Imágen de perfil de xve

usar correctamente INSERT INTO en PDO

Publicado por xve (5523 intervenciones) el 21/01/2016 09:03:05
Hola, has revisado que existan dichas dll's?
Recuerda que hay que reiniciar el apache una vez has modificado el archivo php.ini
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