Un array en php pdo y htaccess, da error de variable indefinida.
Hola, tengo un problema, el tema es el siguiente, intento aprender WebServices y tengo un ejercicio en el que estoy teniendo problemas con pdo, lo he hecho con mysql y así funciona pero con pdo no.
Quiero que funcione en pdo por que intento mejorar mi conocimiento en pdo también, y tengo habilitado el pdo en mi php xampp, de hecho no es mi primer proyecto en pdo
En el htaccess tengo esto
Options +FollowSymLinks -MultiViewsRewriteEngine OnRewriteRule ^([^/]+)/([^/]+) conexionbasededatosrest.php?peticion=$1&detalle=$2 [L,QSA]
Y en el archivo conexionbasededatosrest.php tengo esto
function muestraEspaniol($detalle){ $conexionpdo = new PDO('mysql:localhost;dbname=video2brain', 'root', ''); if($detalle == 'lista') { $sql = "select espanol from traductor"; } else { $sql = "select espanol from traductor where id=".$detalle; } $smtm=$conexionpdo->prepare($sql); $smtm->execute(array($_GET["detalle"])); while ($reg = $smtm->fetch()) { $registros[]=$reg; } return $registros;}if($_GET["peticion"]=='ingles'){ $resultados = muestraIngles($_GET["detalle"]);}elseif($_GET["peticion"]=='espanol'){ $resultados = muestraEspaniol($_GET["detalle"]);}echo json_encode($resultados);
La idea es simple, tengo una base de datos con dos campos, ingles y español, el campo ingles con palabras en ingles y el campo español para palabras en español
Luego tengo esta ruta
http://localhost/pruebas/video2brain/WebServices/ConexionBaseDeDatosREST/
Simplemente quiero que al añadir a esa ruta una la palabra ingles o la palabra español, y posteriormente la palabra lista o simplemente un numero, me muestre una sentencia sql u otra, es decir
http://localhost/pruebas/video2brain/WebServices/ConexionBaseDeDatosREST/ingles/lista
Muestra el total
http://localhost/pruebas/video2brain/WebServices/ConexionBaseDeDatosREST/ingles/2
Muestra los resultados donde el id sea el 2 para añadir variables a la barra de direccion uso el archivo htacess
RewriteRule ^([^/]+)/([^/]+) conexionbasededatosrest.php?peticion=$1&detalle=$2 [L,QSA]
Concretamente en este caso peticiono seria, ingles, y detalle seria o lista o un numero como el 2;
Todo va bien, salvo que siempre haga lo que haga me da error en el return $registros me dice que esta indefinido
cuando rrecorro el array en mysql exactamente igual y me funciona
function muestraEspaniol($detalle){ if($detalle == 'lista') { $sql = "select espanol from traductor"; } else { $sql = "select espanol from traductor where id=".$detalle; } $consulta = mysql_query($sql); while ($reg = mysql_fetch_array($consulta)) { $registros[]=$reg; } return $registros;}
¿Que puede estar fallandome?