File Exchange

image thumbnail

Matlab to MySQL Interface

version (82 KB) by Luigi Rosa
Matlab to MySQL interface using a PHP script


Updated 16 May 2007

View License

MySQL is an open-source database server designed for robustness and speed. On the MySQL home page you can read all about it. To interface to the server, you need a client program which implements the specific MySQL protocol. Then you can execute queries using standard Structured Query Language (SQL). For mathematical and statistical analysis, the best way to use the data is to download it directly into Matlab (for example using Robert Almgren's interface available at ).

Unfortunately many web servers do not allow users to access MySQL server from remote applications for safety reasons. In this case this limitation can be solved interfacing MySQL server with a php script called by Matlab application.

The php script executes the list of MySQL commands given by Matlab, and eventually returns also some output values (in case of SELECT command). This php script has to be available at the remote server (uploaded via FTP protocol). This php script receives the list of MySQL commands submitted by Matlab using POST method. Matlab in fact can read the content of an URL passing information to the server as part of the request with GET or POST methods using urlread command.

Index Terms: Matlab, source, code, php, MySQL, interface, interfacing, database, SQL, connection, server, http, request, script.

For more details please visit

Luigi Rosa
Via Centrale 35
67042 Civita Di Bagno
L'Aquila - ITALY
mobile +39 320 7214179
web site

Cite As

Luigi Rosa (2020). Matlab to MySQL Interface (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (5)


Great Great work, thank you.
Sure the effort has to be completed with a DB permission acces. ie. PHP script, how pointed by Dimitri


Hello Luigi,
Please can you explain the processes in using these files. I dont seem to know where to start or do with the files.

Thanks a lot in advance.

Luigi Rosa

Hi Dimitri, thanks for your suggestions. For example my web server accepts queries only from php/asp scripts or using an internal GUI. The string "tabella" is the name of the an exisiting table. Of course, documentation can be improved. Luigi

Dimitri Shvorob

IMHO, you might offer a little more help on how to use the code - for example, explain what 'test_input.m' and related files are doing, and what (simple?) modifications are needed for a user to run it. Current 'readme' merely repeats the FEX description. An HTML report would be helpful, and ensure that the test code actually works. Case in point: test_input.m has 'INSERT INTO tabella..' query, but 'tabella' - perhaps 'table'? - has not been created.

Dimitri Shvorob

Just wondering: how common is the situation where a 'web server does not allow users to access MySQL server from remote applications for safety reasons', yet accepts an upload and execution of a PHP script? Also, let me add these two FEX links to the 'bibliography' :)

MATLAB Release Compatibility
Created with R2006a
Compatible with any release
Platform Compatibility
Windows macOS Linux