它不会给我其他程序带来任何错误,有时即使没有,它也会使插入在android中没有问题 代码android
public void guardarFavoritos() {
final String Usuario ="Alex";
final String IdEmpresa ="3";
final String Estado ="Activo";
HashMap<String, String> map = new HashMap<>();// Mapeo previo
map.put("Usuario", Usuario);
map.put("IdEmpresa", IdEmpresa);
map.put("Estado", Estado);
// Crear nuevo objeto Json basado en el mapa
JSONObject jobject = new JSONObject(map);
// Depurando objeto Json...
Log.d(TAG, jobject.toString());
// Actualizar datos en el servidor
VolleySingleton.getInstance(getActivity()).addToRequestQueue(
new JsonObjectRequest(
Request.Method.POST,
Constante_Favorito.INSERTFAV,
jobject,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// Procesar la respuesta del servidor
procesarRespuestaInsert(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
Log.d(TAG, "Error Volley: " + error.getMessage());
}
}
) {
@Override
public Map<String, String> getHeaders() {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=utf-8");
headers.put("Accept", "application/json");
return headers;
}
@Override
public String getBodyContentType() {
return "application/json; charset=utf-8" + getParamsEncoding();
}
}
);
}
这是已经测试过的php代码,可以正常工作,但是在通过andorid发送数据时不会插入
<?php
/**
* Insertar una nueva Favoritos en la base de datos
*/
require 'Favoritos.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Decodificando formato Json
$body = json_decode(file_get_contents("php://input"), true);
// Insertar usuario
$retorno = Favoritos::insert(
$body['Usuario'],
$body['IdEmpresa'],
$body['Estado']);
$result = json_decode($retorno, true);
if ($retorno) {
// C�digo de �xito
print json_encode(
array(
'estado' => '1',
'mensaje' => 'Agregado A Favoritos')
);
} else {
// C�digo de falla
print json_encode(
array(
'estado' => '2',
'mensaje' => 'Error Al Agregar')
);
}
}
鳕鱼Favoritos.php
<?php
/**
* Representa el la estructura de las metas
* almacenadas en la base de datos
*/
require '../Database.php';
class Favoritos
{
function __construct()
{
}
public static function getFavoritos($Usuario)
{
// Consulta de la bd_favoritos
$consulta = "SELECT e.IdEmpresa, e.Nit, e.Empresa, e.Eslogan, e.Direccion, p.Pais, d.Departamento, c.Ciudad,
e.Telefono, e.Celular, e.DocRepresentante, e.Representante, e.Email, e.Paginaweb, e.Logo, e.Estado,
e.Prioridad, e.Puntaje
FROM bd_favoritos f
INNER JOIN bd_usuarios u on u.Usuario = f.Usuario
INNER JOIN bd_empresas e on e.IdEmpresa = f.IdEmpresa
INNER JOIN bd_departamento d on d.IdDepartamento = e.IdDepartamento
INNER JOIN bd_pais p on p.IdPais = e.IdPais
INNER JOIN bd_ciudad c on c.IdCiudad = e.IdCiudad
WHERE u.Usuario = ?";
try {
// Preparar sentencia
$comando = Database::getInstance()->getDb()->prepare($consulta);
// Ejecutar sentencia preparada
$comando->execute(array($Usuario));
// Capturar primera fila del resultado
return $comando->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
// Aqu� puedes clasificar el error dependiendo de la excepci�n
// para presentarlo en la respuesta Json
return false;
}
}
/**
* Insertar un nuevo favorito
*
* @return PDOStatement
*/
public static function insert(
$Usuario,
$IdEmpresa,
$Estado
)
{
// Sentencia INSERT
$comando = "INSERT INTO bd_favoritos ( " .
" Usuario," .
" IdEmpresa," .
" Estado)" .
" VALUES( ?,?,?)";
// Preparar la sentencia
$sentencia = Database::getInstance()->getDb()->prepare($comando);
return $sentencia->execute(
array(
$Usuario,
$IdEmpresa,
$Estado
)
);
}
}
?>
当它进入以下方法时,它会插入,但是当它不输入时,它不会插入,不是因为跳过了这些方法
@Override
public Map<String, String> getHeaders() {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=utf-8");
headers.put("Accept", "application/json");
return headers;
}
@Override
public String getBodyContentType() {
return "application/json; charset=utf-8" + getParamsEncoding();
}
有人可以通过指出为什么有时是插入内容来帮助我吗?