質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.10%

Kotlin Volley エラーはないがデータベースにテーブルが挿入されない

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 1,065

score 13

題名の通りです。

このプログラムは、名前とパスワードを入力させて、データベースに保存するものです。
その際、同じ名前があったら、exitさせるようにしてます。

簡単なものから始めようと思って勉強中の初心者です。
色々なものを見て調べて書きました。
Android Studioのログを見ても何もエラーはありません。

色々修正したりしても、Response.ErrorListenerのほうの、'Error_Volley'が表示されます。
キチンんとResponseされていないようです。
phpmyAdminを見てみても、挿入されていません。

このアプリの前に、phpで echo "Hello"; とプログラミングして、それを取得して表示する、というのはできたので、接続はできてると思います。ライブラリの設置エラーとかではないと思います。

package com.example.yusuke.connectiontest

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import com.android.volley.Request
import com.android.volley.Response
import com.android.volley.VolleyError
import com.android.volley.toolbox.JsonObjectRequest
import com.android.volley.toolbox.StringRequest
import com.android.volley.toolbox.Volley
import kotlinx.android.synthetic.main.activity_main.*
import org.json.JSONException
import org.json.JSONObject

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    fun send(v : View){

        val jsonobjput = JSONObject()

        jsonobjput.put("username",username.text)
        jsonobjput.put("password",password.text)

        val url = "http://www.example/test.php"

        val que = Volley.newRequestQueue(this@MainActivity)

        val req = JsonObjectRequest(Request.Method.POST,url,jsonobjput,
                Response.Listener<JSONObject>{
                    response->

                    textView3.text = response.toString()

                },Response.ErrorListener {

                textView3.text = "Error_Volley"

        })


        que.add(req)
    }
}
<?php

パスワード省略。

$conn = mysqli_connect($server_name,$user_name,$db_password,$db_name);

    $in_name = $_POST['username'];
    $password= $_POST['password'];

if(isset($name)&&isset($password)){

$sql = "SELECT * FROM test WHERE name = '$in_name'";

$res = db_query($conn, $sql);
$rows = mysql_num_rows($res);

if ($rows > 0) {

    echo json_encode (error_php);
    exit;

}

    $query = "INSERT INTO test(username,password)VALUES('$in_name','$password')";

    $data = mysqli_query($conn,$query);

if($data){

    echo json_encode (success);

}else{

    echo json_encode (error_php);

}
    exit;
}


?>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.10%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る