#java #php #android #mysql
#java #php #Android #mysql
Вопрос:
Я работаю над приложением, которое выполняет запись в базу данных, и я просто хочу получить некоторые разъяснения о том, почему что-то происходит. У меня есть класс AsyncTask, который я использую для публикации и извлечения информации. Все работает нормально. Но в моем onPostExecute () Я получаю исключение с нулевым указателем, если мой php-скрипт выдает эхо. Если я закомментирую эхо, все работает нормально. Может кто-нибудь пояснить, почему это происходит, и, возможно, исправить то, что я делаю неправильно? Код, который я предоставил, является причиной ошибки.
@Override
protected void onPostExecute(String result) {
switch (result){
case "Registration Success...":
Toast.makeText(context, result, Toast.LENGTH_SHORT).show();
break;
case "One row inserted":
Toast.makeText(context, result, Toast.LENGTH_SHORT).show();
break;
default:
alertDialog.setMessage(result);
alertDialog.show();
context.startActivity(new Intent(context, MainMenuActivity.class));
break;
}
}
php
<?php
require "init.php";
$name = $_POST["name"];
$email = $_POST["email"];
$mobile = $_POST["mobile"];
$sql = "insert into product_info values('$name', '$email', '$mobile');";
if(mysqli_query($con, $sql)){
echo "<br><h3>One Row inserted</h3> // if I leave this like this it causes the error.
} else {
//echo "Error in insertion". mysqli_error($con);
}
?>
Комментарии:
1. У вас нет закрывающей кавычки в строке echo. echo «<br><h3> Вставлена одна строка </ h3>», я думаю, это исправит
2. Вы уязвимы для атак с использованием sql-инъекций