我的SQL数据库和Android应用之间有一个webServer。在数据库中,我想放一个带问号的句子,但是当webserver捕获查询时,echo为null。只有当我在短语中使用问号,点或逗号时才会发生这种情况。 网络服务器的代码是:
<?php
$hostname_localhost ="*****";
$database_localhost ="*****";
$username_localhost ="*****";
$password_localhost ="*****";
$localhost = mysql_connect($hostname_localhost,$username_localhost,$password_localhost)
or
trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_localhost, $localhost);
$resultado = mysql_query('SELECT pregunta,respuesta,intentos,frase FROM Frases');
if (!$resultado) {
die('Consulta no válida: ' . mysql_error());
}
while ($fila = mysql_fetch_assoc($resultado)) {
$pregunta = $fila['pregunta'];
$respuesta = $fila['respuesta'];
$intentos = $fila['intentos'];
$frase = $fila['frase'];
}
mysql_close($localhost);
$data = array('pregunta' => $pregunta, 'respuesta' => $respuesta, 'intentos' => $intentos, 'frase' => $frase);
print (json_encode($data));
?>
答案 0 :(得分:0)
你在while循环中声明变量($ pregunta,$ respuesta,$ intentos,$ frase),一旦while循环完成,那些变量就不再存在。
变化:
while ($fila = mysql_fetch_assoc($resultado)) {
$pregunta = $fila['pregunta'];
$respuesta = $fila['respuesta'];
$intentos = $fila['intentos'];
$frase = $fila['frase'];
}
mysql_close($localhost);
$data = array('pregunta' => $pregunta, 'respuesta' => $respuesta, 'intentos' => $intentos, 'frase' => $frase);
print (json_encode($data));
要:
$data = array();
while ($fila = mysql_fetch_assoc($resultado)) {
$pregunta = $fila['pregunta'];
$respuesta = $fila['respuesta'];
$intentos = $fila['intentos'];
$frase = $fila['frase'];
$data = array('pregunta' => $pregunta, 'respuesta' => $respuesta, 'intentos' => $intentos, 'frase' => $frase);
}
mysql_close($localhost);
print (json_encode($data));
然后将数据分配给while循环外的变量,从而保留,允许您输出json编码的数组。
答案 1 :(得分:0)
在您的java代码中,您可以通过这种方式发送GET变量。编码为utf-8
String query = URLEncoder.encode("Do I need to write a question mark?", "utf-8");
String url = "http://questionmark.com/search?q=" + query;