PHP - Error fatal al usar PDO con PHP

 
Vista:
Imágen de perfil de Reinaldo

Error fatal al usar PDO con PHP

Publicado por Reinaldo (16 intervenciones) el 20/01/2016 21:30:12
Saludo cordial, me encuentro desarrollando una página web de consultas de la Biblia, y aunque ya hice gran parte del trabajo de los controles, me está generando un error fatal al usar el api PDO de PHP. adjunto los archivos y el error por si alguien me puede ayudar. Gracias de antemano:

conectabd.php

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
$host = 'localhost';
$base = 'biblia3';
$usuario = 'root';
$password ='toor';
try{
	$conn = new PDO('mysql:host='.$host.';dbname='.$base.'', $usuario, $password);
	$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	$conn->exec("SET CHARACTER SET utf8");
}catch(PDOException $e){
	echo "ERROR: " . $e->getMessage();
}





busca_texto.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include'conectabd.php';
//include'index.php'; en otro php sí me funciona con este include
error_reporting(E_ALL ^ E_NOTICE);
    $lib = $_GET['selected'];
    $cap =$_GET['selected2'];
 
 
 $sql = $conn->prepare('SELECT VERSICULO, CONTENIDO FROM TEXTO WHERE COD_LIBRO='.$lib.' '.'AND CAPITULO='.$cap.' ');
 $sql = $conn->query('SELECT COD_TEXTO, CAPITULO FROM TEXTO WHERE COD_LIBRO='.$cap.'GROUP BY CAPITULO ORDER BY COD_TEXTO');
 $sql->execute();
 $resultado = $sql->fetchAll();
 
    foreach ($resultado as $row) {
        echo $row['0']." ".$row['1']."</br>";
    }


Error:

1
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY CAPITULO ORDER BY COD_TEXTO' at line 1' in C:\xampp\htdocs\Biblia1_1\busca_texto.php:12 Stack trace: #0 C:\xampp\htdocs\Biblia1_1\busca_texto.php(12): PDOStatement->execute() #1 C:\xampp\htdocs\Biblia1_1\index.php(6): include('C:\\xampp\\htdocs...') #2 {main} thrown in C:\xampp\htdocs\Biblia1_1\busca_texto.php on line 12
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: 8
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error fatal al usar PDO con PHP

Publicado por Mauricio (30 intervenciones) el 20/01/2016 21:37:35
pregunta
la columna COD_LIBRO que tipo de dato es¿?
si es varchar debes poner comillas por ejemplo
WHERE COD_LIBRO = 'el valor a buscar'
como estas concatenando una variable
seria asi ...

WHERE COD_LIBRO = "'.$cap.'" GROUP BY
estoy usando comilla doble antes de cortar con comilla simple para concatenar

saludos espero haberme explicado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Reinaldo

Error fatal al usar PDO con PHP

Publicado por Reinaldo (16 intervenciones) el 20/01/2016 21:56:58
Hola, y gracias por responder. El query anterior lo estaba usando como prueba. Al modificar lo que me dices si funciona.


1
$sql = $conn->prepare('SELECT VERSICULO, CONTENIDO FROM TEXTO WHERE COD_LIBRO="'.$lib.'" AND CAPITULO="'.$cap.'"');


$lib y $cap reciben un valor numérico.

cod_libro es una columna de tipo entero.
capitulo es una columna de tipo caracter.

Funcionó por un instante, pero ya no. Lo que no entiendo es por qué sólo funciona por vez. Debe haber algo mal en el llamado que hago con el botón:

1
<a href="#" class="btn btn-block btn-primary btn-success" style='width:150px; height:40px' onclick="cargarPaginaPHP3('busca_texto.php','contenedor','');"><span class="glyphicon glyphicon-book"></span> Buscar texto</a>


Gracias por tomarte el tiempo en revisar. Creo que la próxima vez trataré con valores numéricos.
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