neoPHP MySQL support (Beta) - Forum

Forum Navigation
Climate strike banner
You need to log in to create posts and topics.

neoPHP MySQL support (Beta)

Hi everyone!

I have added remote MySQL support to neoPHP plugin.
Currently only neoPhpExecSql action works, but it's enough for most apps (neoTable binding not ready yet).
neoTable binding is working now too (2019/06/15).
Please check the attached files and let me know if works for you:

neophp.nabp (New neoPHP plugin version BETA)
simple-sample (Very simple app loads data from remote MySQL database. Remember to put config.php file into compiler destination path, as it has important connection information)
neotable-sample (Complete but simple neoTable / MySQL CRUD application)

Online neoTable / MySQL CRUD Sample ("admin" for user and password):

https://visualneo.com/tutorials/neotablemysql

Remember:

  1. Load app into VisualNEO Web
  2. Compile / Publish as Web Application
  3. Copy config.php to destination folder
  4. Open Tools > neoPHP Server
  5. Click "Start"
  6. Open your favourite web browser and navigate to "localhost"

Remote data base grants all permissions to defined user so please, be responsible :)

FILE UPDATED: 2019/06/25 (Release candidate 2)

Uploaded files:
  • You need to login to have access to uploads.

Muchas gracias por tu dedicacion y siempre en la busqueda de soluciones a quienes valoramos tu programa y creemos y lo vemos como la manera de hacer nuestros proyectos.

Ahora una duda, la consulta en este caso se hace en la tabla "users' segun veo en el archivo "Config"

si necesito leer datos de otra tabla debo crear otros alias de busqueda? , uno por cada tabla que necesite recuperar datos?

 

Y una segunda pregunta, el archivo "Config" debe ser copiado al servidor dentro de la carepta "php" o simplemente en la carpeta donde estan instalados los archivos del programa

 

tambien veo que se pueden pasar parametros dentro de la consulta o query , cuales serian los parametros que se podrian pasar?

Thanks for the code and your solution which tested OK on my computer.

If I want to use my own MySQL database, I presumably update the config.php file?

What is the purpose of the empty sinliost_visualneo file?

I look forward to the next stage of this development.

 

Hi @bguk and @gustavo1973,

Sorry for the delay on my answer, I'm really busy.
Will try to explain the process in detail:

Configuration:

In order to use your own remote database, you should edit the config.php file located in the compiled app root folder.
Use the one in my sample app as a template and edit after starting neoPHP Web Server using the menu option Edit > config.php (root folder) . This is the code from my config.php sample app commented:

<?php
//Alias name for the database. The name we will use from VisualNEO
$dbAlias[0]="db1";

//Real database name
$dbNames[0]="sinliost_visualneo";

//Database host name.
//Use "localhost" if you host MySQL and neofuncions.php together
$dbServerNames[0]="sinlios.top";

//MySQL database username
$dbUserNames[0]="sinliost_visual";

//MySQL database user password
$dbPasswords[0]="visual-neo";

//Add here all your SQL queries.
//Don't forget increasing the index number for new ones
$sqlAlias[0]="read";
$sqlQuerys[0]="SELECT * from users";
$sqlMaxUserLevel[0]=-1;
?>

How to configure the database:

If you are going to host neofunctions.php and config.php in a different hosting than your MySQL database (as when you are using neoPHP Server), you must configure your hosting to allow remote MySQL connections and allow your IP, or any IP using %.%.%.% or *.*.*.* depending of your web hosting admin panel.

How to deploy the app:

Once compiled, VisualNEO Web will generate a neofunctions.php file with the code necessary to run the SQL queries.
For testing purposes you use neoPHP server, but you need to upload your WebApp to a PHP capable web hosting in order to deploy your application. If you want to generate an Android app through PhoneGap then the files neofunctions.php and config.php will need to be uploaded to a PHP web hosting (it could be the same where your MySQL database is hosted "localhost" or a different one, like in my example where the database is hosted in "sinlios.top" as you can see in config.php.
Use neoPhpSetPath action command if you are going to use PhoneGap so your app knows where the .php scripts are hosted.

Using parameters on SQL Queries:

If you want to use a paramer in your SQL query, use a "?" symbol where you want your parameter to appear in config.php.
Example:

$sqlAlias[1]="selectName";
$sqlQuerys[1]="SELECT * from users where name=?";
$sqlMaxUserLevel[1]=-1;

Then, from VisualNEO Web you can exexute the query using this command:

neoPhpExecSql "db1" "selectName" "Clark" "parseData"

It will return for all the records wich name field is equal to "Clark"
You can use more than one parameter and separate them in neoScript using "::" as separator.
You can find this information within the neoPhpExecSql command wizard.

What is the purpose of the empty sinliost_visualneo file?

That's a bug, you can safely delete that file.
It's because VisualNEO tries to create the SQLite database if it doesn't exists locally, and it's trying to do it also with MySQL ones (will fix it as soon as possible).

Let me know if you have any doubts.

I know it seems difficult at first but that's only becouse I have to cover all the possible situations.
The most important thing is to understand how everything works and you will be able to create a database app in no time.

Best regards.

Thanks luishp for the detailed explanation.

Your app looks really promising.

 

Muchísimas Gracias Luis por la dedicación!. Estaremos probando todo!.

@palamar, @bguk, @gustavo1973 I have updated the neoPhp plugin version to support UTF8 character set. Previous version didn't support non english special characters.

Regards.

Buenísimo, veremos de probarlo. Gracias por tu soporte!.

Saludos!

ENG:

Great, we will try it. Thank you for your support!.

regards!!

Necesito hacer una consulta de registros en un rango de fechas determinadas

esta bien planteada la consulta SQL que puse en el archivo Config.php ? porque no me funciona, quizas tengo algo mal en la sintaxis, destacar que ese mismo query de consulta lo uso desde VisualNeoWin sin problema:

$sqlAlias[2]="reservas";
$sqlQuerys[2]="SELECT * from RESERVAS WHERE Fecha BETWEEN ? AND ? AND Casa=? AND HechaPor=?";
$sqlMaxUserLevel[2]=-1;

 

los datos que le envio son los siguientes :

SetCompVar "[Fecha1]" "[Ano]-[MesNumero]-01"
SetCompVar "[Fecha2]" "[Ano]-[MesNumero]-31"
SetVar [CasaBusqueda] "[Casa1]"
neoPhpExecSql "db1" "reservas" "[Fecha1]::[Fecha2]::[CasaBusqueda]::[UsuarioRemoto]" "BusquedaReservas"

Hola @gustavo1973,

Aparentemente está todo ok. Es muy dificil saber a priori donde puede estar fallando.
Consejo: Empieza con una query lo más simple posible y ve añadiendo condicionales hasta que localices donde falla.
Por ejemplo, comienza con "SELECT * FROM RESERVAS" y comprueba si funciona. Después añade la cláusula WHERE con los condicionales probándolos uno a uno.
Saludos!

@gustavo1973, @palamar, @bguk, @gaev

I have uploaded a new version and a sample with a complete but very simple CRUD neoTable / MySQL application.
It has some bug fixes and enhacements so please update your current plugin.
Since I have to test and modify some more actions, it is still a BETA version.
Let me know if you find any bug or have any doubt.
Thank you!

Best regards.

Solucionado, estava todo ok , solo que habia puesto el nombre de la tabla en Mayusculas en la consulta ,

Gracias igual por la ayuda

I have uploaded a new neoPhp plugin version: 2019/06/16
It fixes some problems working with SQLite data bases and includes updated samples.

Now it works with any SQL query for SQLite or MySQL.
Includes neoTable onscreen edition support for SQLite or MySQL.

To do: MySQL stored user management.

I have replaced the file on this thread first post with a new neoPhp plugin version: 2019/06/19
Now there is user management support for MySQL.
Sample app have been updated too.

To do: Fix file creation on root folder with the same name than MySQL database.

Instale la nueva version, y ahora no funcionan consultas que antes si lo hacian

Tengo que modificar algun archivo de manera manual yo luego de instalar esta version nueva ?

Me pasa lo mismo, dejaron de funcionar las consultas

ENG:
I have uploaded it again.
Please check.
I need some more information:
Any error message in the Web Browser Console?
The problem affects SQLite, MySQL or both?
I can't reproduce the problem here with any of my applicactions.
Thanks!

ESP:
He vuelto a subirlo, por favor comprobad si sigue dando problemas.
Necesitaría más información:
¿Algún mensaje de error en la consola del navegador?
¿Pasa con SQLite, con MySQL o con ambos?
Yo no puedo reproducir el problema aquí con ninguna de mis aplicaciones.
Gracias!

 

He instalado el plugin que volvistes a subir y sigue sin funcionar, en mi caso mis pruebas son con MySQL

Si miro en la consola del explorador no me aparece nada raro al momento de mandar la consulta

Tampoco llega ningun resultado a la subrutina que recibe los datos

El archivo Config.php queda como estava nomas o hay que cambiarle algo?

Agrego que no funciona ni en local ni subido al servidor

Asi se ve tu ejemplo al ejecuralo mediante php server

https://drive.google.com/open?id=1FEzNzhOGGFnDSV1wslkoZWS_knKguzHJ

Si reinstalo la version anterior vuelve todo a funcionar correctamente

 

@gustavo1973, el error en la ejecución de mi app de ejemplo se debe a que no has sustituido el archivo config.php por el que incluyo y has dejado el que genera neoPhp Server por defecto.
Fíjate que cada uno de los dos ejemplos incluye un archivo .neoapp y un config.php.
El archivo config.php es necesario copiarlo a la carpeta de compilación para que funcione correctamente ya que es ahí donde se define el acceso a la base de datos MySQL remota.

He instalado la nueva versión en dos ordenadores diferentes y probado ambos ejemplos sin problemas. Necesitaría poder ver el código de un ejemplo que no funcione en esta versión y si en la anterior.

Gustavo, te acabo de dar permisos de moderador en el foro para que puedas compartir archivos si lo necesitas. Me hace falta alguna pista más para saber la razón por la que no os funciona correctamente. ¡Pero cuidado con compartir contraseñas de acceso a bases de datos que no sean de prueba!

Gracias!

 

Este es el link para ver la aplicacion funcionando de manera correcta compilada con la version anterior del plugin, ingresar como valor de busqueda el numero "1"

http://guaviyu.org/Prueba1/#!/Ingreso

Este es el link para ver la aplicacion que no funciona con el plugin actual, ingresar como valor de busqueda el numero "1"

http://guaviyu.org/Prueba2/#!/Ingreso

Adjunto el codigo de la aplicacion de prueba

 

Uploaded files:
  • You need to login to have access to uploads.