Mysql select 到 PHP 关联数组不起作用
Mysql select into PHP associative array not working
我试图从 SQL select 语句中获取响应,但是当我尝试回显编码为 JSON 的数组时,除了“ - ”我回应以确保自己正在进入循环。
$sql = "SELECT * FROM PREGUNTA WHERE PREGUNTA.pregunta LIKE '%$palabra_clave%' OR PREGUNTA.respuesta_correcta LIKE '%$palabra_clave%' OR PREGUNTA.respuesta_falsa_1 LIKE '%$palabra_clave%' OR PREGUNTA.respuesta_falsa_2 LIKE '%$palabra_clave%' OR PREGUNTA.retroalimentacion LIKE '%$palabra_clave%'";
$query = mysqli_query($con, $sql);
$json = array();
while($data = $query->fetch_assoc()){
$json[] = array(
'pregunta' => $data['pregunta'],
'respuesta_correcta' => $data['respuesta_correcta'],
'respuesta_falsa_1' => $data['respuesta_falsa_1'],
'respuesta_falsa_2' => $data['respuesta_falsa_2'],
'retroalimentacion' => $data['retroalimentacion']
);
echo $data['pregunta'];
echo '<br>';
}
echo json_encode($json);
这是我的输出:
¿Cuál no es un lenguaje de programación web?
¿Cuál es el lenguaje web más importante?
很可能您的输入没有使用 UTF-8 字符编码。根据 the documentation 对于 json_encode
"All string data must be UTF-8 encoded".
当我传递一个包含“¿Cuál no es un lenguaje de programación web?”的数组时到 json_encode
,它工作正常。但是,如果我首先将文本转换为 ISO-8859-1,json_encode
returns 布尔值 false
因此什么都不输出。
将您的变量分配给数组(例如):
$json[] = array('pregunta' =>
mb_convert_encoding($data['respuesta_correcta'], 'UTF-8', 'ISO-8859-1'),
// ...
);
或将您的数据库和应用程序转换为使用 UTF-8 开头。
我试图从 SQL select 语句中获取响应,但是当我尝试回显编码为 JSON 的数组时,除了“ - ”我回应以确保自己正在进入循环。
$sql = "SELECT * FROM PREGUNTA WHERE PREGUNTA.pregunta LIKE '%$palabra_clave%' OR PREGUNTA.respuesta_correcta LIKE '%$palabra_clave%' OR PREGUNTA.respuesta_falsa_1 LIKE '%$palabra_clave%' OR PREGUNTA.respuesta_falsa_2 LIKE '%$palabra_clave%' OR PREGUNTA.retroalimentacion LIKE '%$palabra_clave%'";
$query = mysqli_query($con, $sql);
$json = array();
while($data = $query->fetch_assoc()){
$json[] = array(
'pregunta' => $data['pregunta'],
'respuesta_correcta' => $data['respuesta_correcta'],
'respuesta_falsa_1' => $data['respuesta_falsa_1'],
'respuesta_falsa_2' => $data['respuesta_falsa_2'],
'retroalimentacion' => $data['retroalimentacion']
);
echo $data['pregunta'];
echo '<br>';
}
echo json_encode($json);
这是我的输出:
¿Cuál no es un lenguaje de programación web?
¿Cuál es el lenguaje web más importante?
很可能您的输入没有使用 UTF-8 字符编码。根据 the documentation 对于 json_encode
"All string data must be UTF-8 encoded".
当我传递一个包含“¿Cuál no es un lenguaje de programación web?”的数组时到 json_encode
,它工作正常。但是,如果我首先将文本转换为 ISO-8859-1,json_encode
returns 布尔值 false
因此什么都不输出。
将您的变量分配给数组(例如):
$json[] = array('pregunta' =>
mb_convert_encoding($data['respuesta_correcta'], 'UTF-8', 'ISO-8859-1'),
// ...
);
或将您的数据库和应用程序转换为使用 UTF-8 开头。