我正在将值从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)。为什么会这样?
答案 0 :(得分:0)
好吧,我已经研究了这个问题,只是一个编码错误。
在所有String变量上使用utf8_encode()
解决了我的问题。
如果遇到编码问题,可以使用此方法:
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));