Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error fatal en consulta con PDO

Estas en el tema de Error fatal en consulta con PDO en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/01/2016, 14:33
Avatar de reymagnus  
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Error fatal en consulta con PDO

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

Código:
Código PHP:
<?php $host 'localhost'; $base 'biblia3'; $usuario 'root'; $password ='toor'; try{     $conn = new PDO('mysql:host='.$host.';dbname='.$base.''$usuario$password);     $conn->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);     $conn->exec("SET CHARACTER SET utf8"); }catch(PDOException $e){     echo "ERROR: " $e->getMessage(); }





busca_texto.php

Código PHP:
[CODE]<?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>";
    }[/
CODE]





Código:
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
  #2 (permalink)  
Antiguo 20/01/2016, 15:24
Avatar de reymagnus  
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Error fatal en consulta con PDO

Hola, y gracias por responder. El query anterior lo estaba usando como prueba. Al modificar lo que me dices si funciona.


1

Código:
$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

Código:
<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.


Este código funciona, pero una sola vez y con los valores que están seleccionados desde el principio, no con los que el usuario cambie desde el select.

Si alguien puede ayudarme para ver si se puede hacer dinámico que al cambiar las opciones del select, cambien los valores que se pasan por ajax a php. Gracias.
  #3 (permalink)  
Antiguo 21/01/2016, 06:59
Avatar de reymagnus  
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Error fatal en consulta con PDO

Hola, cordial saludo a todos.

He verificado nuevamente y sí, el problema estaba en cómo se definía el query (culpa de las comillas simples y dobles ), todo volvió a la calma.

Gracias por la ayuda y doy por terminado este tema.

Etiquetas: fatal, mysql, pdo, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:34.