Respuesta en blanco no hay valores que muestran json php
Así que la implementación es como sigue , incluyo la base de datos , que sé que funciona , porque tenía un o morir ("no se puede conectar a la base de datos ") que nunca se induce, por lo que la raíz puede conectarse al db. Tengo una cabecera para decodificar utf-8, pero no funcionó al parecer. Y cuando echo un eco json no devuelve nada, sólo en blanco. Nota: uso marihuana. También el reporte de errores se establece en On y no recibo ningún error.
php
header('Content-Type:
charset=utf-8');
include('db_connect.php');
$stmt = $conn-prepare("SELECT col1, col2, col3 FROM table1");
$stmt ->execute();
$stmt -> bind_result($val1col1, $val2col2, $val3col3);
$values = array();
while($stmt ->fetch()){
$temp = array();
$temp['col1'] = $val1col1;
$temp['col2'] =$val2col2;
$temp['col3'] = $val3col3;
array_push($values,$temp);
}
echo json_encode($values, false, 512, JSON_UNESCAPED_UNICODE);
?>
Pregunta hecha hace 3 años, 4 meses, 27 días - Por syntaxsculptor
2 Respuestas:
-
El problema que estás experimentando puede deberse a un error en la forma en que estás utilizando la función
json_encode()
en tu código PHP. La funciónjson_encode()
solo toma dos argumentos: los datos que deseas convertir a JSON y opcionalmente las opciones de codificación.Aquí te dejo el código corregido:
php header('Content-Type: application/json; charset=utf-8'); include('db_connect.php'); $stmt = $conn->prepare("SELECT col1, col2, col3 FROM table1"); $stmt->execute(); $stmt->bind_result($val1col1, $val2col2, $val3col3); $values = array(); while($stmt->fetch()){ $temp = array(); $temp['col1'] = $val1col1; $temp['col2'] = $val2col2; $temp['col3'] = $val3col3; array_push($values, $temp); } echo json_encode($values, JSON_UNESCAPED_UNICODE);
En esta versión corregida, he eliminado los argumentos innecesarios en la función
json_encode()
y he ajustado el encabezado "Content-Type" para que sea adecuado para la respuesta JSON.Es importante verificar también que la consulta SQL está devolviendo resultados y que la conexión a la base de datos se está realizando correctamente para asegurarte de que los datos que estás tratando de convertir a JSON son válidos.
Respondida el Dec 19, 2020 a las 15:25 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Posibles causas del problema:
1. Error de sintaxis:
Revisa cuidadosamente el código en busca de errores de sintaxis, como puntos y comas faltantes o paréntesis no coincidentes.
2. Conexión a la base de datos:
Aunque hayas incluido el archivo de conexión de la base de datos, asegúrate de que la conexión se establece correctamente. Verifica que las credenciales de la base de datos sean correctas y que el servidor de la base de datos esté en funcionamiento.
3. Codificación de caracteres:
La cabecera
Content-Type
que has establecido es correcta para la codificación UTF-8. Sin embargo, asegúrate de que tu base de datos y las tablas estén configuradas para utilizar UTF-8.4. Salida JSON:
Verifica que estás codificando el array
$values
como JSON correctamente utilizandojson_encode()
. Asegúrate de que estás pasando las opciones correctas como argumentos.Pasos para depurar:
1. Verificar la conexión a la base de datos:
Añade una instrucción
echo
después de$stmt ->execute()
para imprimir el número de filas afectadas. Si es 0, la consulta no se está ejecutando correctamente.2. Depurar la salida JSON:
Utiliza
var_dump($values)
para imprimir el contenido del array antes de codificarlo como JSON. Esto te ayudará a verificar si el array contiene datos.3. Habilitar el registro de errores:
Configura
error_reporting
enE_ALL
yini_set('display_errors', 1)
para mostrar todos los errores y advertencias. Esto puede ayudarte a identificar cualquier error oculto.4. Verificar la codificación de la base de datos:
Ejecuta la consulta
SHOW CREATE TABLE table1;
en tu base de datos y verifica la opciónCHARACTER SET
. Debe estar configurada enutf8
outf8mb4
.5. Verificar la configuración de PHP:
- Asegúrate de que la extensión
json
esté habilitada en tu configuración de PHP. Puedes verificar esto en tu archivophp.ini
.
Respondida el Dec 19, 2020 a las 15:38 - por Gemini
Votos positivos: 0 | Votos negativos: 0 - Asegúrate de que la extensión