当我从PHP上的MySQL取数据到数组时出现白屏

时间:2018-06-21 02:16:58

标签: php mysqli

我正在将值从MySQL(PHPMyAdmin)转换为PHP,然后,我将它们发送到回显以在Ionic上获取这些值。我不知道为什么,但是当我在数组中添加特定值(MySQL的Bio字段)并执行.php文件时,白屏显示。

这是我的代码:

json-tecnico.php

<?php

require_once('connect.php');

$consulta = "SELECT
                idTecnico,
                nombre,
                apellido,
                cedula,
                genero,
                telefono,
                usuario,
                correo,
                ubicacion,
                bio,
                rate,
                catg.descripcion Categoria_Descripcion,
                subcat.descripcion Subcategoria_Descripcion
            FROM
                tecnico AS tec

            INNER JOIN categoria AS catg
            ON
                tec.categoria = catg.idCategoria
            INNER JOIN subcategoria AS subcat
            ON
                subcat.idCategoria = catg.idCategoria AND subcat.idSubcategoria = tec.subcategoria
            WHERE categoria = '".$_GET['categoria']."'";

    if(isset($_GET['subcategoria'])){
        $consulta = $consulta . " AND subcategoria = '".$_GET['subcategoria']."';";
    }

    $resultado = mysqli_query($conexion, $consulta);


        while($columna = mysqli_fetch_assoc($resultado)){
            $data[] = array(
                'id' => $columna['idTecnico'],
                'nombre' => $columna['nombre'],
                'apellido' => $columna['apellido'],
                'cedula' => $columna['cedula'],
                'genero' => $columna['genero'],
                'usuario' => $columna['usuario'],
                'ubicacion' => $columna['ubicacion'],
                'bio' => $columna['bio'],
                'rate' => $columna['rate'],
                'subcategoria' => $columna['Subcategoria_Descripcion']
            );
        }


    if(!empty($data)){
        echo json_encode($data);
    }

    else{
        $data[] = array(
            'success' => 'No se encontro usuarios con el criterio de busqueda dado',
            'workers' => false
        );
        echo json_encode($data);
    }

      mysqli_close($conexion); ?>

当我在$_GET['subcategoria']上放置'007'值并且在行'bio' => $columna['bio']上放置时,白屏显示。

在MySQL上,bio是 varchar(500)。为什么会这样?

A photo of the "tecnico" table on PHPmyAdmin

1 个答案:

答案 0 :(得分:0)

好吧,我已经研究了这个问题,只是一个编码错误。 在所有String变量上使用utf8_encode()解决了我的问题。

如果遇到编码问题,可以使用此方法:

I got the Answer from here!


    function utf8ize($d) {
        if (is_array($d)) {
            foreach ($d as $k => $v) {
                $d[$k] = utf8ize($v);
            }
        } elseif (is_string ($d)) {
            return utf8_encode($d);
        }
        return $d;
    }

之后:


    echo json_encode(utf8ize($data));