带标点符号的SQL查询

时间:2015-03-21 01:50:45

标签: php android mysql sql json

我的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));

?>

2 个答案:

答案 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;