当我从PHP上的MySQL获取数据到数组中时出现白色屏幕
我将值从MySQL(PHPMyAdmin)获取到PHP,然后将它们发送到echo,以便在Ionic上获取这些值。我不知道为什么,但是当我在数组中添加一个特定的值(来自MySQL的Bio字段)并执行.php文件时,我看到了一个白色的屏幕 这是我的密码: json tecnico.php当我从PHP上的MySQL获取数据到数组中时出现白色屏幕,php,mysqli,Php,Mysqli,我将值从MySQL(PHPMyAdmin)获取到PHP,然后将它们发送到echo,以便在Ionic上获取这些值。我不知道为什么,但是当我在数组中添加一个特定的值(来自MySQL的Bio字段)并执行.php文件时,我看到了一个白色的屏幕 这是我的密码: json tecnico.php <?php require_once('connect.php'); $consulta = "SELECT idTecnico, nomb
<?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); ?>
嗯,我已经深入研究了这个问题,只是一个编码错误。
在所有字符串变量上使用utf8\u encode()
解决了我的问题。
如果遇到编码问题,可以使用此选项:
函数utf8ize($d){
if(is_数组($d)){
foreach($d为$k=>$v){
$d[$k]=utf8ize($v);
}
}elseif(是字符串($d)){
返回utf8_编码($d);
}
返回$d;
}
在那之后:
echo json_encode(utf8ize($data));
echo json_编码(utf8ize($data));
白色屏幕?检查您的浏览器开发工具网络选项卡,如果它是一个500错误,那么您的php是一个致命的错误弹坑。检查您的服务器日志以了解问题。您还可以接受SQL注入。您应该参数化查询。检查服务器日志,并尝试echo$consulta;添加ini\u集('display\u errors',1);ini_集(“日志错误”,1);错误报告(E_全部);mysqli_报告(mysqli_报告错误| mysqli_报告严格)代码>到脚本的顶部。这将强制任何mysqli\uu
错误生成一个异常,您可以在浏览器上看到,其他错误也可以在浏览器上看到。>网络选项卡显示状态:200:OK
我的服务器日志对此没有任何说明
此外,ini\u集('display\u errors',1);ini_集(“日志错误”,1);错误报告(E_全部);mysqli_报告(mysqli_报告错误| mysqli_报告严格)代码>不起作用。
echo json_encode(utf8ize($data));