2015-04-14 2 views
-1

Как после Android подключиться к PHP, вставить значение в таблицу SQL?Как вставить значение в таблицу MySQL

Я хочу использовать значение сообщения Android для PHP, тогда PHP может получить значение и вставить.

Но теперь у меня есть проблема, я не знаю, почему не могу вставить.

Это мой Android код:

public class MainActivity extends Activity { 
    TextView t; 
    // 
    String url = "http://00.00.00.00/Insert.php"; 

    //thread 
    Handler mHandle; //manager 
    HandlerThread mThread;//worker 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main);  
     //create table using CreateTable.php 
     mThread = new HandlerThread("CreateTable");// 
     mThread.start();//worker stand by 
     mHandle = new Handler (mThread.getLooper());//look for worker using Handle manager 
     mHandle.post(CreateTable);//give work for worker 
    } 
    // 
    private Runnable CreateTable = new Runnable() { 
     @Override 
     public void run() { 

      // TODO Auto-generated method stub 
      //connect php 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost method = new HttpPost(url); 
      //send value to 
      List< NameValuePair> vars=new ArrayList< NameValuePair>(); 
      vars.add(new BasicNameValuePair("number","abc")); 
      try { 
       method.setEntity(new UrlEncodedFormEntity(vars,HTTP.UTF_8)); 
       Log.e("TAG","Send to php"); 
      } catch (UnsupportedEncodingException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    }; 
} 

и это мой PHP код

<?php 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = ''; 
$dbname = 'androidhive'; 

$number = $_POST['number'];//$number from android 

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connection'); 

    mysql_query("SET NAMES 'utf8'"); 
    mysql_select_db($dbname); 
    $result = mysql_query("INSERT INTO table1(Username,Password,Role) VALUES('number', 'number', 'number')"); 
?> 
+1

Если вы используете Android улей как источник учебных пособий, пожалуйста, нет - их примеры PHP, кажется, содержат инъекции SQL, и они не будет отвечать на твиты, прося их исправить такие проблемы безопасности. – halfer

+0

'$ result = mysql_query (" INSERT INTO table1 (Имя пользователя, пароль, роль) VALUES ('$ number', '$ number', '$ number') ");' – Frank

+0

@Frank thx, После того, как я изменил, .. –

ответ

0

мне найти ошибку и исправить PHP

<?php 
    header("Content-type: text/html; charset=utf-8"); 
    $conn = new mysqli('localhost', 'user', 'password', 'databasename'); 
    $conn->set_charset('utf8'); 

    $number = $_POST['number']; 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 
    $sql = "INSERT INTO table1(Username,Password,Role) VALUES('$number', '$number', '$number')"; 
    if ($conn->query($sql) === TRUE) { 
     echo "insert to table successfully"; 
    } else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 
    $conn->close(); 
?> 
0

Вы должны вызвать метод выполнения на HttpClient.

httpClient.execute(postRequest); 
+0

все еще не может добиться успеха –

Смежные вопросы