INSERT INTO `ms_gpt`.`tb01` (`ms_gpt_01_01`,`ms_gpt_01_02`, `ms_gpt_01_03`, `ms_gpt_01_04`, `ms_gpt_01_05`, `ms_gpt_01_06`, `ms_gpt_01_07`) VALUES ('ADMIN-3938-15691','127.0.0.1','FX359AT','[B]Quando e stato costruito il duomo di bolgna e perchè?[/B]','ASWER OFF','2023-04-01 01:52:00','false');
private Sub QuestionGPT(question As String)
DateTime.DateFormat = "yyyy-MM-dd HH:mm:ss"
Dim query As String
Dim code1 As String = Rnd(1000,9999).As(String)
Dim code2 As String = Rnd(10000,99999).As(String)
query = "INSERT INTO `ms_gpt`.`tb01` (`ms_gpt_01_01`," & "`ms_gpt_01_02`, `ms_gpt_01_03`, `ms_gpt_01_04`, `ms_gpt_01_05`, `ms_gpt_01_06`, `ms_gpt_01_07`) VALUES ('ADMIN" & "-" & code1 & "-" & code2 & "','127.0.0.1','FX359AT','" & question.Replace("'","\'") & "','ASWER OFF','" & DateTime.Date(DateTime.Now) & "','false');"
Log(query)
If MYSQL.IsInitialized = False Then
MYSQL.Initialize(Me,"MYSQL", "com.mysql.jdbc.Driver", $"jdbc:mysql://${MyLocation}/${MyScheme}?useSSL=false"$, MyUsername, MyPassword)
End If
MYSQL.ExecNonQuery(query) ' [B]qui mi va in crash!
[/B]
MYSQL.Close
End Sub
Quí forse deve essere`) VALUES ('ADMIN" & "-" &
`) VALUES ('ADMIN' & "-" &
la query mi sembra buona visto che mysql diretto la prende senza erroriQuí forse deve essere
Controlla bene ADMIN che apre con ' e chiude con "B4X:`) VALUES ('ADMIN' & "-" &
Ma io capisco zero di sta roba e potrei aver detto una vaccata
Tu stai guardando la query che hai postato singolarmente.la query mi sembra buona visto che mysql diretto la prende senza errori
INSERT INTO `ms_gpt`.`tb01` (`ms_gpt_01_01`,`ms_gpt_01_02`, `ms_gpt_01_03`, `ms_gpt_01_04`, `ms_gpt_01_05`, `ms_gpt_01_06`, `ms_gpt_01_07`) VALUES ('ADMIN-1945-92277','127.0.0.1','FX359AT','Quando e stato costruito il duomo di Milano','ASWER OFF','2023-04-01 11:55:44','false');
query = "INSERT INTO `ms_gpt`.`tb01` (`ms_gpt_01_01`," & "`ms_gpt_01_02`, `ms_gpt_01_03`, `ms_gpt_01_04`, `ms_gpt_01_05`, `ms_gpt_01_06`, `ms_gpt_01_07`) VALUES ('ADMIN" & "-" & code1 & "-" & code2 & "','127.0.0.1','FX359AT','" & question.Replace("'","\'") & "','ASWER OFF','" & DateTime.Date(DateTime.Now) & "','false');"
query = "INSERT INTO `ms_gpt`.`tb01` (`ms_gpt_01_01`," & "`ms_gpt_01_02`, `ms_gpt_01_03`, `ms_gpt_01_04`, `ms_gpt_01_05
Grazie dopo guardo meglio anche se un & di troppo darebbe errore di compilazione, la query finale e comunque derivata da quel frammento di codice e con copia incolla su mysql mi da query ok.Tu stai guardando la query che hai postato singolarmente.
Guarda nel secondo blocco di codice che hai postato dove hai
dove forse c'è anche un " & " di troppo subito nel secondo valore.B4X:query = "INSERT INTO `ms_gpt`.`tb01` (`ms_gpt_01_01`," & "`ms_gpt_01_02`, `ms_gpt_01_03`, `ms_gpt_01_04`, `ms_gpt_01_05`, `ms_gpt_01_06`, `ms_gpt_01_07`) VALUES ('ADMIN" & "-" & code1 & "-" & code2 & "','127.0.0.1','FX359AT','" & question.Replace("'","\'") & "','ASWER OFF','" & DateTime.Date(DateTime.Now) & "','false');"
'This code will be applied to the manifest file during compilation.
'You do not need to modify it in most cases.
'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136
AddManifestText(
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="31"/>
<supports-screens android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
CreateResourceFromFile(Macro, Themes.LightTheme)
AddPermission("android.permission.INTERNET")
AddPermission("android.permission.ACCESS_NETWORK_STATE")
'End of default text.
SetApplicationAttribute(android:theme, "@style/LightTheme")
CreateResource(values, colors.xml,
<resources>
<color name="actionbar">#ff039be5</color>
<color name="statusbar">#ff006db3</color>
<color name="textColorPrimary">#ffffffff</color>
<color name="navigationBar">#ff006db3</color>
</resources>
)
CreateResource(values-v20, theme.xml,
<resources>
<style name="LightTheme" parent="@android:style/Theme.Material.Light">
<item name="android:colorPrimary">@color/actionbar</item>
<item name="android:colorPrimaryDark">@color/statusbar</item>
<item name="android:textColorPrimary">@color/textColorPrimary</item>
<item name="android:navigationBarColor">@color/navigationBar</item>
</style>
</resources>
)
CreateResource(values-v14, theme.xml,
<resources>
<style name="LightTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/CustomActionBarStyle</item>
</style>
<style name="CustomActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/actionbar</item>
</style>
</resources>
)
private Sub QuestionGPT(question As String)
Dim mysql As SDMYSQL
mysql.Initialize
DateTime.DateFormat = "yyyy-MM-dd HH:mm:ss"
Dim query As String
Dim code1 As String = Rnd(1000,9999).As(String)
Dim code2 As String = Rnd(10000,99999).As(String)
query = "INSERT INTO `ms_gpt`.`tb01` (`ms_gpt_01_01`,`ms_gpt_01_02`, `ms_gpt_01_03`, `ms_gpt_01_04`, `ms_gpt_01_05`, `ms_gpt_01_06`, `ms_gpt_01_07`) VALUES ('ADMIN" & "-" & code1 & "-" & code2 & "','127.0.0.1','FX359AT','" & question.Replace("'","\'") & "','ASWER OFF','" & DateTime.Date(DateTime.Now) & "','false');"
query = query.ToLowerCase.Trim
Log(query)
mysql.ExecNonQuery(query)
mysql.Close
End Sub
Sub LoadRecordTrueMysql(query As String) As Boolean
Try
Dim mysql As SDMYSQL
mysql.Initialize
CustomListView_record_Aswar_true.Clear
Dim rs As SD_ResultSet
mysql.ExecQueryResutSet(query,rs)
Dim ls As List
ls.Initialize
For i=0 To rs.ColumnCount-1
ls.Add(rs.GetColumnName(i))
Next
Do While rs.NextRow
' Log(rs.GetString2(0))
' Log(rs.GetString2(1))
' Log(rs.GetString2(2))
' Log(rs.GetString2(3))
' Log(rs.GetString2(4))
' Log(rs.GetString2(5))
Dim bitmaps As List = Array("pexels-photo-446811.jpeg", "pexels-photo-571195.jpeg","pexels-photo-736212.jpeg", "pexels-photo-592798.jpeg")
Dim Question As String = rs.GetString2(3)
Dim aswer As String = rs.GetString2(4)
CustomListView_record_Aswar_true.Add(CreateItem(CustomListView_record_Aswar_true.AsView.Width,Question,bitmaps.Get(Rnd(0,3)),aswer), "")
Loop
rs.Close
mysql.Close
Catch
mysql.Close
Log(LastException)
Return False
End Try
Return True
End Sub
Cosa fare di "utile" alle 6 di mattina? Vedere come avrebbe risposto PerplexityAl limite... chiedi il sorgente (PHP) a ChatGPT
<?php
// Connessione al database
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
// Controllo della connessione
if ($conn->connect_error) {
die("Connessione fallita: " . $conn->connect_error);
}
// Preparazione della query di inserimento
$stmt = $conn->prepare("INSERT INTO myTable (name, address) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $address);
// Controllo dei dati inseriti
if (isset($_POST['name']) && isset($_POST['address'])) {
$name = htmlspecialchars($_POST['name']);
$address = htmlspecialchars($_POST['address']);
// Esecuzione della query di inserimento
if ($stmt->execute()) {
echo "Record inserito con successo";
} else {
echo "Errore nell'inserimento del record: " . $stmt->error;
}
}
// Chiusura della connessione
$stmt->close();
$conn->close();
?>
Si ritorno al Php perché è meglio delle librerie diretteCosa fare di "utile" alle 6 di mattina? Vedere come avrebbe risposto Perplexity
Immagine parziale (ovviamente non tutto entra in una sola schermata PC):
View attachment 140855
Copio e incollo tutto il sorgente che ha generato:
ed il suo commento:B4X:<?php // Connessione al database $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password, $dbname); // Controllo della connessione if ($conn->connect_error) { die("Connessione fallita: " . $conn->connect_error); } // Preparazione della query di inserimento $stmt = $conn->prepare("INSERT INTO myTable (name, address) VALUES (?, ?)"); $stmt->bind_param("ss", $name, $address); // Controllo dei dati inseriti if (isset($_POST['name']) && isset($_POST['address'])) { $name = htmlspecialchars($_POST['name']); $address = htmlspecialchars($_POST['address']); // Esecuzione della query di inserimento if ($stmt->execute()) { echo "Record inserito con successo"; } else { echo "Errore nell'inserimento del record: " . $stmt->error; } } // Chiusura della connessione $stmt->close(); $conn->close(); ?>
In questo esempio, si utilizza l'estensione MySQLi per connettersi al database MySQL. Si prepara una query di inserimento utilizzando il metodo prepare() e si controllano i dati inseriti dall'utente utilizzando la funzione htmlspecialchars() per evitare attacchi di tipo XSS. Si esegue la query di inserimento utilizzando il metodo execute() e si controlla se l'operazione è andata a buon fine. Infine, si chiude la connessione al database.
NOTA: non ho nemmeno "letto" il sorgente, figuriamoci provato!
So' diventato esageratamente pigro, ergo uso gli strumenti moderni
ho comunque un problemaSo' diventato esageratamente pigro, ergo uso gli strumenti moderni
https://www.perplexity.ai/search/7324142d-7df1-47b7-b3e6-2d2be607cbc5?s=c
Private Sub Button1_Click
Dim http As HttpJob
http.Initialize("insert",Me)
http.Download2("http://miasmart.it/apiwebmiasmart/to01_insert.php?", Array As String("101","127.0.0.1","ET359ET","QUESTION","ASWER","2023-04-03 17:02:08","false"))
End Sub
<?php
$servername = "localhost";
$username = "xxxxxxxxxxxxxxxxxx";
$password = "xxxxxxxxxxxxxxxxxxxxxx";
$dbname = "xxxxxxxxxxxxxxxxxxxxx";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connessione fallita: " . $conn->connect_error);
}
$stmt = $conn->prepare("INSERT INTO tb01(ms_gpt_01_01, ms_gpt_01_02, ms_gpt_01_03, ms_gpt_01_04, ms_gpt_01_05, ms_gpt_01_06, ms_gpt_01_07) VALUES (?,?,?,?,?,?,?)");
$stmt->bind_param($ms_gpt_01_01, $ms_gpt_01_02, $ms_gpt_01_03, $ms_gpt_01_04, $ms_gpt_01_05, $ms_gpt_01_06, $ms_gpt_01_07);
if (isset($_POST['ms_gpt_01_01']) && isset($_POST['ms_gpt_01_02']) && isset($_POST['ms_gpt_01_03']) && isset($_POST['ms_gpt_01_04']) && isset($_POST['ms_gpt_01_05']) && isset($_POST['ms_gpt_01_06']) && isset($_POST['ms_gpt_01_07'])) {
$ms_gpt_01_01 = htmlspecialchars($_POST['ms_gpt_01_01']);
$ms_gpt_01_02 = htmlspecialchars($_POST['ms_gpt_01_02']);
$ms_gpt_01_03 = htmlspecialchars($_POST['ms_gpt_01_03']);
$ms_gpt_01_04 = htmlspecialchars($_POST['ms_gpt_01_04']);
$ms_gpt_01_05 = htmlspecialchars($_POST['ms_gpt_01_05']);
$ms_gpt_01_06 = htmlspecialchars($_POST['ms_gpt_01_06']);
$ms_gpt_01_07 = htmlspecialchars($_POST['ms_gpt_01_07']);
if ($stmt->execute()) {
echo "Record inserito con successo";
} else {
echo "Errore nell'inserimento del record: " . $stmt->error;
}
}
$stmt->close();
$conn->close();
?>
Waiting for debugger to connect...
Program started.
Call B4XPages.GetManager.LogEvents = True to enable logging B4XPages events.
Invalid link: http://miasmart.it/apiwebmiasmart/to01_insert.php?
Error occurred on line: 246 (HttpJob)
java.lang.ArrayIndexOutOfBoundsException: Index 7 out of bounds for length 7
at b4j.example.httpjob._escapelink(httpjob.java:347)
at b4j.example.httpjob._download2(httpjob.java:108)
at b4j.example.b4xmainpage._button1_click(b4xmainpage.java:73)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:629)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:234)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:111)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:100)
at anywheresoftware.b4a.BA$1.run(BA.java:236)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
at java.base/java.lang.Thread.run(Thread.java:834)
Non dovrebbe essere là.il problema e nel manifest che ora sto cercando di risolvere. Grazie
Sembra ci sia un array di 7 elementi ma venga utilizzato 7 come indice, mentre gli array hanno base 0, per cui l'indice massimo deve avere valore 6.Error occurred on line: 246 (HttpJob) java.lang.ArrayIndexOutOfBoundsException: Index 7 out of bounds for length 7
in:$stmt->bind_param($ms_gpt_01_01, $ms_gpt_01_02, $ms_gpt_01_03, $ms_gpt_01_04, $ms_gpt_01_05, $ms_gpt_01_06, $ms_gpt_01_07);
$stmt->bind_param('sssssss', $ms_gpt_01_01, $ms_gpt_01_02, $ms_gpt_01_03, $ms_gpt_01_04, $ms_gpt_01_05, $ms_gpt_01_06, $ms_gpt_01_07);
"s" | Corrisponde a variabili associate al tipo di dato stringa. |
"i" | Corrisponde a variabili associate al tipo di dato numeri interi. |
"d" | Corrisponde a variabili associate al tipo di dato numeri double. |
"b" | Corrisponde a variabili associate al tipo di dato BLOB, formato binario. |
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?