Erro no código Android com conexão WebService PHP

Não conseguido inserir dados no banco de dados, enviando dados do aplicativo android para o banco de dados phpmyadmin.

public class MainActivity extends AppCompatActivity implements Response.Listener<JSONObject>, Response.ErrorListener {      TextView CampoId;     Button Botao;     EditText CampoNome;     ProgressDialog BarraProgresso;     RequestQueue Requisicao;     JsonObjectRequest JsonObjetoRequisicao;       @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          CampoId = findViewById(R.id.CampoId);         CampoNome = findViewById(R.id.CampoNomeId);         Botao = findViewById(R.id.BtnID);          Requisicao = Volley.newRequestQueue(getApplicationContext());          Botao.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View view) {                  carregarWebService();              }         });      }      private void carregarWebService() {            String url = "http://127.0.0.1/androidbd/registro.php?codigo="+ CampoId.getText().toString() + "&nome="+ CampoNome.getText().toString();         url = url.replace("", "%20");          JsonObjetoRequisicao = new JsonObjectRequest(Request.Method.GET, url, null,this, this);         Requisicao.add(JsonObjetoRequisicao);     }      @Override     public void onErrorResponse(VolleyError error) {         BarraProgresso.hide();         Toast.makeText(getApplicationContext(),"Não conectado", Toast.LENGTH_LONG).show();      }      @Override     public void onResponse(JSONObject response) {         BarraProgresso.hide();         Toast.makeText(getApplicationContext(),"Código de cadastro deu certo!", Toast.LENGTH_LONG).show();         CampoId.setText("");         CampoNome.setText("");       } } 

Arquivo – registro.php

<?php  include "conexao.php";   $  json = array();  if(isset($  _GET["nome"])){     $  codigo = $  _GET["id"];     $  nome = $  _GET["nome"];      $  inserir = "INSERT INTO testeconexao (id, nome) VALUES ('{$  codigo}', '{$  nome}')";      $  resultado_inserir = mysqli_query($  conexao, $  inserir);      if($  resultado_inserir){         $  consulta = "SELECT * FROM testeconexao WHERE id = '{$  codigo}' ";         $  resultado = mysqli_query($  conexao, $  consulta);         if($  registro= ($  resultado)){             $  json['curso'][] = $  registro;         }          mysqli_close($  conexao);         echo json_encode($  json);         echo $  _GET['id'] . " " . $  _GET['nome'];      }else{         $  result["codigo"] = 0;         $  result["nome"] = 'Não Registrado';         $  json['curso'][] = $  result;         echo json_encode($  json);     }  }else{         $  result["codigo"] = 0;         $  result["nome"] = 'Não Registrado';         $  json['curso'][] = $  result;         echo json_encode($  json);     }  ?> 

apresenta erro no Android Studio:

08/03 00:08:47: Launching app $ adb install-multiple -r -t -p com.example.conexaobdws /home/alanpn/AndroidStudioProjects/ConexaoBDWS/app/build/intermediates/split-apk/debug/slices/slice_0.apk Split APKs installed in 761 ms $ adb shell am start -n “com.example.conexaobdws/com.example.conexaobdws.MainActivity” -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Client not ready yet..Waiting for process to come online Connected to process 8927 on device Nexus_5X_API_29_x86 [emulator-5554] Capturing and displaying logcat messages from application. This behavior can be disabled in the “Logcat output” section of the “Debugger” settings page. W/ple.conexaobdw: JIT profile information will not be recorded: profile file does not exits. I/chatty: uid=10134(com.example.conexaobdws) identical 10 lines W/ple.conexaobdw: JIT profile information will not be recorded: profile file does not exits. I/InstantRun: starting instant run server: is main process W/ple.conexaobdw: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed) Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed) D/: HostConnection::get() New Host Connection established 0xebc3df40, tid 9573 D/: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_dma_v1 ANDROID_EMU_host_composition_v1 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_2 D/OpenGLRenderer: Swap behavior 1 W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without… D/OpenGLRenderer: Swap behavior 0 D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 0 0 D/EGL_emulation: eglCreateContext: 0xebb82360: maj 2 min 0 rcv 2 D/EGL_emulation: eglMakeCurrent: 0xebb82360: ver 2 0 (tinfo 0xdf27a790) W/Gralloc3: mapper 3.x is not supported D/: createUnique: call HostConnection::get() New Host Connection established 0xebc3f700, tid 9573 D/: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_dma_v1 ANDROID_EMU_host_composition_v1 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_gles_max_version_2 D/OpenGLRenderer: Setting buffer count to 3, min_undequeued 1, extraBuffers 0 D/EGL_emulation: eglMakeCurrent: 0xebb82360: ver 2 0 (tinfo 0xdf27a790) D/eglCodecCommon: setVertexArrayObject: set vao to 0 (0) 1 0 I/AssistStructure: Flattened final assist data: 1900 bytes, containing 1 windows, 11 views E/Volley: [308] NetworkDispatcher.processRequest: Unhandled exception java.lang.RuntimeException: Bad URL %20%h%20%t%20%t%20%p%20%:%20%/%20%/%20%1%20%2%20%7%20%.%20%0%20%.%20%0%20%.%20%1%20%/%20%a%20%n%20%d%20%r%20%o%20%i%20%d%20%b%20%d%20%/%20%r%20%e%20%g%20%i%20%s%20%t%20%r%20%o%20%.%20%p%20%h%20%p%20%?%20%c%20%o%20%d%20%i%20%g%20%o%20%=%20%e%20%w%20%e%20%&%20%n%20%o%20%m%20%e%20%=%20%1%20%1%20% java.lang.RuntimeException: Bad URL %20%h%20%t%20%t%20%p%20%:%20%/%20%/%20%1%20%2%20%7%20%.%20%0%20%.%20%0%20%.%20%1%20%/%20%a%20%n%20%d%20%r%20%o%20%i%20%d%20%b%20%d%20%/%20%r%20%e%20%g%20%i%20%s%20%t%20%r%20%o%20%.%20%p%20%h%20%p%20%?%20%c%20%o%20%d%20%i%20%g%20%o%20%=%20%e%20%w%20%e%20%&%20%n%20%o%20%m%20%e%20%=%20%1%20%1%20% at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:171) at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:120) at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:87) Caused by: java.net.MalformedURLException: no protocol: %20%h%20%t%20%t%20%p%20%:%20%/%20%/%20%1%20%2%20%7%20%.%20%0%20%.%20%0%20%.%20%1%20%/%20%a%20%n%20%d%20%r%20%o%20%i%20%d%20%b%20%d%20%/%20%r%20%e%20%g%20%i%20%s%20%t%20%r%20%o%20%.%20%p%20%h%20%p%20%?%20%c%20%o%20%d%20%i%20%g%20%o%20%=%20%e%20%w%20%e%20%&%20%n%20%o%20%m%20%e%20%=%20%1%20%1%20% at java.net.URL.(URL.java:601) at java.net.URL.(URL.java:498) at java.net.URL.(URL.java:447) at com.android.volley.toolbox.HurlStack.executeRequest(HurlStack.java:92) at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:131) at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:120)  at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:87) 

Manter conexão MySQL aberta com Nodejs ou PHP em api que recebe requisições via POST

Boa tarde galera, estou com um pepino pra resolver em relação há um BD mysql + PHP, rodando num servidor local modesto (windows server) e acessado na rede local e remoto, que estou migrando pra node por alguns motivos:


1 – Tem um fluxo de dados muito grande, é recebido um (diversos) POST com json e uma foto em base64 (uma das tabelas recebe entre 3 a 10 entradas por segundo, fora as consultas). Gostaria de manter a DB aberta por questão de performance.

Dúvida: Para manter a conexão com a DB aberta, uma classe singleton em PHP não atende esse caso correto? Pois cada POST recebido gera uma nova requisição e o script encerra o ciclo, finalizando também a instância da Classe. Dá pra resolver isso com Node, persisitindo os dados da conexão com a DB ou vou cair no mesmo problema?

Código em PHP:

private function __construct(){  }  public static function getInstance() {     if (!isset(self::$  instance)) {         self::$  instance = new Conexao();     }     return self::$  instance; }  public static function getConn(){     if(!isset(self::$  conn)) {         echo 'conn é nulo, criando conexao...<br><br>';         self::$  conn = new mysqli(self::$  host, self::$  username, '', self::$  database);         if (self::$  conn->connect_error) {             die("Connection failed: " . self::$  conn->connect_error);         }      }     return self::$  conn; } 

2 – Tem diversas tabelas relacionadas a esses dados recebidos, e o PHP fica fazendo ‘polling’ nessas tabelas, o que também afeta muito o desempenho, nesse caso penso em utilizar websockets com socket.io e a própria rota que recebe o POST, mandar via websocket apenas a nova informação.

Dúvida: além dessas duas práticas tem algo que possa ser feito para melhorar performance? Além dessa API tem um frontend rodando junto ali, que foi testado em máquina separada e funcionou ok, mas não sei se o ganho seria tão grande sendo que o maior problema é o acesso a DB e o HD do servidor rodando no talo.

3 – Dúvida: além disso, o POST recebido as vezes vem com caracter faltando no final ( sem a ‘}’) ou um espaço a mais no começo, fazendo com que o json não seja identificado… como resolvo isso tratando a string para esses dois casos?

Agradeço desde já

Thread para de funcionar apos interrupção de conexão com a rede

Tenho uma aplicação Windows Form C# que trabalha com o TcpClient clientSocket = new TcpClient(); e esta é inicializada no Form1_Load abaixo juntamente com uma Thread que por si chama GetMessage.

A aplicação funciona perfeitamente mas, se desconecto o computador da rede o Thread não executa mais GetMessage.

Como faço para quando conectar novamente o computador o thread volte a funcionar?

    private void Form1_Load(object sender, EventArgs e)     {         textBox4.Text = string.Empty;          try         {             //CONEXÃO             clientSocket.Connect(textBox1.Text, int.Parse(textBox2.Text));              Thread ctThead = new Thread(GetMessage);             ctThead.Start();              textBox1.Enabled = false;             textBox2.Enabled = false;             label4.Text = "Sistema conectado";         }         catch (Exception)         {             while (!clientSocket.Connected)             {                 Thread.Sleep(5000);                 Form1_Load(sender, e);             }         }     }       private void GetMessage()     {          while (true)         {             serverStream = clientSocket.GetStream();             var buffSize = clientSocket.ReceiveBufferSize;             byte[] insTream = new byte[buffSize];              serverStream.Read(insTream, 0, buffSize);              string returnData = Encoding.ASCII.GetString(insTream);              readData = returnData;              Msg();         }     } 

Erro no Django 2.2 – conexão com o mysql

Olá! É o seguinte, estou com um problema para realizar a conexão no mysql com o django. O erro é esse:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module. Did you install mysqlclient?

A primeira solução que encontrei na internet, foi simplesmente instalar esse módulo com pip install mysqlclient. Sem sucesso, foi me retornado um erro gigante.

running build_ext building ‘MySQLdb._mysql’ extension error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: https://visualstudio.microsoft.com/downloads/

Tentei instalar “Microsoft Visual C++ Build Tools”, sem sucesso.

A segunda solução que encontrei, foi adicionar as seguintes linhas dentro do arquivo settings.py, logo após instalar com o pip o pymysql.

 import pymysql   pymysql.install_as_MySQLdb() 

Isso me retornou o seguinte erro:

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

Eu não faço a mínima ideia do que pode ser ou do que fazer, já que sou iniciante e não tenho muita noção :/

Alguém tem alguma ideia do que pode ser? Obrigado e aguardo resposta!

Uso de GLOBAL com mysqli deixa a conexão aberta?

Nesta forma de acesso ao banco com mysqli fiquei na dúvida se são abertas duas conexões, e se, depois de fechar a do $ stmt, se ainda fica uma conexão sempre aberta.

O uso é basicamente este:

$  host = "mysql.host.com.br"; $  db = "dbname"; $  user = "user"; $  passw = "passw";  $  mysqli = new mysqli($  host, $  dbname, $  user, $  passw);  GLOBAL $  mysqli; 

Então para usar faz:

$  stmt = $  mysqli->prepare(SELECT...); $  stmt = execute(); ... $  stmt->close(); 

Então a primeira dúvida é se no caso ficam abertas duas conexões, uma que é usada na query com $ stmt, e a outra que fica aberta ($ mysqli) esperando algum outro request acontecer.

Sendo apenas uma, a conexão da variável $ mysqli vai ficar aberta até o limite do timeout, ou se quando fecha com $ stmt ela fecha tbm a global ($ mysqli)?

Problema em uma class de conexão

bom estou com esse error na minha class de conexão:

Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql///helpsemeq 

não sei em qual parte errei no codigo:

package Conexao;  import java.sql.Connection; import java.sql.DriverManager;  import java.sql.SQLException;   public class ConnectionFactory {     public Connection getConnection(){         try{         String nomeUsuario = "root";         String senhaUsuario = "";         String enderecoServidor = "localhost";         String nomeBanco = "helpsemeq";         return DriverManager.getConnection("jdbc:mysql//"+enderecoServidor+                 "/"+nomeBanco, nomeUsuario, senhaUsuario);          } catch (SQLException ex){             System.out.println("fail");             throw new RuntimeException(ex);         }     } } 

Desenvolvimento Android como criar uma conexão com Banco de dados Mysql [pendente]

Sou nova no desenvolvimento Android e estou tendo problemas quanto ao armazenamento de dados pois estou fazendo um projeto onde o app precisa pegar os dados de um banco de dados MySQL, porém sei que não é recomendado fazer isso diretamente. Então eu optei por fazer isso usando uma API como intermediária (gerenciando os dados) entre o app e o Banco de dados. O banco de dados já foi criado e existe uma porta específica que eu deveria usar para acessar o banco. Mas não sei como fazer isso.

Uso Android Studio Linguagem Java

Erro na abertura da conexão com o banco de dados

Bom dia a todos,

Tenho pouca experiencia em c# com bd oracle.

Tenho o seguinte código:

private Dao GetDataSet() { try { OracleDataAdapter oracleDataAdapter = new OracleDataAdapter(this._comm); this._ds = new DataSet(); this._comm.Connection.Open(); ((DataAdapter)oracleDataAdapter).Fill(this._ds); this._comm.Connection.Close(); this._comm.Dispose(); return this; }

        catch (Exception ex)         {             throw ex;         }     } 

Quando chega na linha onde abre a conexão “this._comm.Connection.Open();” uma exceção é acionada “ServerVersion = ‘this._comm.Connection.ServerVersion’ threw an exception of type ‘System.InvalidOperationException'”

Alguém tem alguma ideia do que está gerando esta exceção ?

Muito obrigado pela ajuda.