2014-01-04 4 views
2

В онлайн-учебном пособии я нашел способ записи в онлайн-базу данных mysql.Запись в базу данных mysql

Вот мой PHP часть:

<?php 
echo 'test'; 
$connect = mysql_connect("localhost","user","pwd","dbname"); 

if(mysql_connect_errno($connect)) 
{ 
    echo "Failed to connect to MySQL: " . mysql_connect_error(); 
} 
else 
{ 
    echo "success"; 
} 

$name= isset($_POST['appname']) ? $_POST['appname'] : ''; 
$email= isset($_POST['appemail']) ? $_POST['appemail'] : ''; 

$query = mysql_query($connect, "insert into jagdenwilli(name, email) values ('$name' ,'$email') "); 

mysql_close($connect); 
?> 

user и pwd обычно это имя пользователя и пароль для моей базы данных MySQL, dbname это имя моей базы данных (номер, имя, адрес электронной почты, дата)

Вот мой андроид часть:

public void senden(){ 
    Toast t = Toast.makeText(this, "asd", Toast.LENGTH_SHORT); 
    t.show(); 

    String name = "Herbert"; 
    String email = "[email protected]"; 
    HttpClient httpclient; 
    HttpPost httppost; 
    ArrayList<NameValuePair> nameValuePairs; 


      httpclient = new DefaultHttpClient(); 
      httppost = new HttpPost("http://www.ff-ehrnsdorf.at/jagdenwilli.php"); 

      try 
      { 
       nameValuePairs = new ArrayList<NameValuePair>(); 
       nameValuePairs.add(new BasicNameValuePair("name", name)); 
       nameValuePairs.add(new BasicNameValuePair("email", email)); 

       httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
       HttpResponse response = httpclient.execute(httppost); 
      } 
      catch(Exception e) 
      { 
       e.printStackTrace(); 
      } 
     } 

Я уверен, что ссылка я доступ является правильным но я не получить какие-либо данные в моя база данных. Ошибок также нет. Где моя ошибка?

+0

Вы прочитали из объекта 'response'? В моем тесте он говорит 'testUnable, чтобы выбрать базу данных' ....!? Проверьте параметры подключения к базе данных. –

+0

Извините, я новичок в базе данных ... как я могу это прочитать? – user896692

+0

@ user896692 Я обновил свой ответ снова, у него есть пример примера подключения mysql. Взгляните и попробуйте подключить правильные значения для вашей настройки. – Durandal

ответ

2

Похоже, ваши имена переменных не совпадают:

name & email на стороне Java

против appname и appemail в вашем запросе парам поиска на PHP стороне

матча их и вам должно быть хорошо идти.

Также для подключения высказывания: используйте следующий синтаксис:

$handle = mysql_connect($host, $user, $pass); 
@mysql_select_db($database) or die("Unable to select database"); 

Простой пример конфигурация MySQL ниже:

$h = "127.0.0.1"; 
$u = "root"; 
$p = ""; 
$database = "gps"; 

$handle = mysql_connect($h, $u, $p); 
@mysql_select_db($database) or die("Unable to select database"); 
if (!$handle) { 
    echo "Could not connect to server\n"; 
    trigger_error(mysql_error(), E_USER_ERROR); 
} 

В вашем случае вы бы просто нужны $ заменить и & $ p с вашим именем пользователя и паролем. Вам также необходимо заменить $ database именем базы данных/схемы, в которой находится ваша таблица.

+0

Спасибо, я попробовал, но в моей базе данных по-прежнему нет записей ... – user896692

+0

Вы проверили ваши взгляды на php, чтобы узнать, действительно ли запрос запускает код? Также, если вы вручную переходите к URL-адресу и передаете ему значения, вставляет ли он? – Durandal

+0

Как я могу посмотреть, запускает ли код? Хорошо, я попытался дать значения по URL-адресу, но все равно не успел ... – user896692

1

Не использовать «mysql_query()».

Вместо этого, вы должны абсолютно использовать подготовленные заявления, а также API, как PDO или MySQLi вместо:

http://us1.php.net/pdo.prepared-statements

http://us1.php.net/mysqli_query

<?php 
// EXAMPLE: 
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)"); 
$stmt->bindParam(':name', $name); 
$stmt->bindParam(':value', $value); 

// insert one row 
$name = 'one'; 
$value = 1; 
$stmt->execute(); 

Кроме того, за Magicman, убедитесь, что аргументы в вашем form соответствуют именам переменных в вашем PHP, а имена столбцов в вашей вставке соответствуют именам столбцов в вашей базе данных.

+0

Я пробовал, к сожалению, все еще нет записей – user896692

+0

Также: 1) Проверить журналы доступа и ошибок на вашем сервере, 2) Посмотрите на эту ссылку: [PHP MySqlii insert not working] (http://stackoverflow.com/questions/6811070/php-mysqli-insert-not-working-no-errors) – FoggyDay

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