buona serata a tutti,
ormai sono giorni che provo a gestire al meglio un db remoto su altervista com script php
in pratica riesco a fare tutte le query, tranne inserire il campo blob con una foto, oppure leggere un record
dove e' contenuto un campo blob con foto ("caricata a mano direttamente dal portale altervista")
qualcuno puo' darmi una mano per favore,
in pratica in tutte le tabelle dove mi serve il campo blob con la foto, creo un campo sempre con lo stesso nome
cioe FotoBlob cosi che posso verificare l'esistenza del campo, ma anche utilizzando questo script non mi restituisce nulla
:script php
se lancio questo codice, mi ritorna l'elenco
ma se lancio questo codice, non mi ritorna nulla ritorna solo [] quindi vuoto
chiaramente tutte le query $"Select * from ;"$ mi ritornano il contenuto della tabella, se non ci sono campi blob popolati
qualche suggerimento?
anche un suggerimento di come inserire un record della tabella categorie, avente solo 3 campi idCategoria, DesCategoria,FotoBlob
allego anche la funzioncina executeremotequery
ormai sono giorni che provo a gestire al meglio un db remoto su altervista com script php
in pratica riesco a fare tutte le query, tranne inserire il campo blob con una foto, oppure leggere un record
dove e' contenuto un campo blob con foto ("caricata a mano direttamente dal portale altervista")
qualcuno puo' darmi una mano per favore,
in pratica in tutte le tabelle dove mi serve il campo blob con la foto, creo un campo sempre con lo stesso nome
cioe FotoBlob cosi che posso verificare l'esistenza del campo, ma anche utilizzando questo script non mi restituisce nulla
:script php
B4X:
<?php
$databasehost = "localhost";
$databasename = "nomedb";
$databaseusername ="utente";
$databasepassword = "password";
error_reporting(E_ALL ^ E_WARNING);
error_reporting(0);
$con = mysqli_connect($databasehost,$databaseusername,$databasepassword, $databasename) or die(mysqli_error($con));
mysqli_set_charset ($con , "utf8");
$query = file_get_contents("php://input");
$sth = mysqli_query($con, $query);
if (mysqli_errno($con)) {
header("HTTP/1.1 500 Internal Server Error");
echo $query.'\n';
echo mysqli_error($con);
}
else
{
$rows = array();
while($r = mysqli_fetch_assoc($sth)) {
if ($r['FotoBlob'] instanceof mysqli_stmt) {
// Field is of type BLOB
$r["FotoBlob"] = base64_encode($r["FotoBlob"]);
}
$rows[] = $r;
}
$res = json_encode($rows);
echo $res;
mysqli_free_result($sth);
}
mysqli_close($con);
?>
se lancio questo codice, mi ritorna l'elenco
B4X:
dim metodoas string ="Cerca"
Dim query As String = $"Select idCategoria, DesCategoria from Categorie where idCategoria<10 ;"$
Wait For (connessionePhp.ExecuteRemoteQuery(query,metodo)) Complete (Valore As String)
Log("valore " & metodo &": " & Valore)
ma se lancio questo codice, non mi ritorna nulla ritorna solo [] quindi vuoto
B4X:
dim metodo as string ="Cerca"
'Dim query As String = $"Select idCategoria, DesCategoria from Categorie where idCategoria<10 ;"$
Dim query As String = $"Select * from Categorie where idCategoria<10 ;"$
Wait For (connessionePhp.ExecuteRemoteQuery(query,metodo)) Complete (Valore As String)
Log("valore " & metodo &": " & Valore)
chiaramente tutte le query $"Select * from ;"$ mi ritornano il contenuto della tabella, se non ci sono campi blob popolati
qualche suggerimento?
anche un suggerimento di come inserire un record della tabella categorie, avente solo 3 campi idCategoria, DesCategoria,FotoBlob
allego anche la funzioncina executeremotequery
B4X:
Sub ExecuteRemoteQuery(Query As String, JobName As String) As ResumableSub
Dim res As String
Dim job As HttpJob
Log(Query)
job.Initialize(JobName, Me)
job.PostString(Main.cRemoteStringa, Query)
Wait For (job) JobDone(job As HttpJob)
Log("successo?")
Log(job.Success)
Log(job.GetString)
Log("fine successo")
If job.Success Then
res = job.GetString
Log("res: " & res)
If JobName="Insert" Then res="OK"
If JobName="Delete" Then res="OK"
If JobName="Cerca" And res.Length < 5 Then res="0"
' Return res
Else
res = "ERR"
'Return "errore"
End If
job.Release
Return res
End Sub