【问题标题】:Mysql select into PHP associative array not workingMysql选择进入PHP关联数组不起作用
【发布时间】:2016-06-30 21:09:22
【问题描述】:

我试图从 SQL 选择语句中获取响应,但是当我尝试回显编码为 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?

【问题讨论】:

  • 您检查过错误日志吗?您假设查询正在运行。
  • @Jay Blanchard 5 我检查了错误日志,但查询没有任何错误。此外,如果查询写得不好,我认为它不会进入循环。
  • 查询是唯一的解释。 - 回显了多少次?一次?肯定是查询。
  • 在您的脚本中添加一些错误检查 - 有很多情况下不会将任何内容写入 mysql 的错误日志,而这里也不会写入网络服务器错误日志。
  • 添加到最后一行 echo json_last_error_msg(); 并告诉我们你得到了什么。

标签: php mysql select associative-array


【解决方案1】:

您的输入很可能没有使用 UTF-8 字符编码。根据the documentation for json_encode“所有字符串数据必须是UTF-8编码”。

当我传递一个包含“¿Cuál no es un lenguaje de programación web?”的数组时到json_encode,它工作正常。但是如果我首先将文本转换为 ISO-8859-1,json_encode 返回布尔值false,因此什么也不输出。

使用 (eg) 将变量分配给数组:

$json[] = array('pregunta' =>
    mb_convert_encoding($data['respuesta_correcta'], 'UTF-8', 'ISO-8859-1'),
    // ...
);

或将您的数据库和应用程序转换为使用 UTF-8 开头。

【讨论】:

  • 这就是问题所在。现在转换编码效果很好,但是服务器连接在 UTF8_general_ci 中,数据库在 UTF8-spanish_ci 中,表在 UTF8-spanish_ci 中。你知道我为什么会遇到这个问题吗?
  • 浏览UTF-8 all the way through。很有可能您的堆栈中的某些内容未配置为正确使用 UTF-8。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
  • 2016-10-07
  • 1970-01-01
相关资源
最近更新 更多