- Home /
Is it possible to send and recieve data from/to a MySql server?
Hi everyone! I want to create a PHP website with a MySql server, where users can register, login, and then get "coins" (like an arcade game). Then users can use those "coins" to play 3D webgames made with Unity.
Can I get the Unity webgames communicate with the MySql server, in order to send and retrieve data like username, login, number of available coins, etc?
Answer by duck · May 26, 2010 at 01:27 PM
You should use standard HTTP Get or Post requests, via Unity's WWW class, to send requests to your PHP scripts, and read the responses.
The PHP scripts on your server would then communicate with the Database, and perform tasks like checking whether a username is available, creating new accounts, logging in, retrieving account data, etc.
You should consider it in a similar way to how you would build it as if it had a simple web page based form interface, but instead of typing in the form values into text boxes, you pass them as values via scripts. The returned page can then contain the data in whatever format you want, for your game to process.
For more information, see this Question:
How can I send and receive data to and from a URL, i.e. server side scripts, web services, etc?
Thank you very much, this sounds really helpful and easy too. ;)
Answer by Tobias · May 26, 2010 at 08:43 AM
Yes you can with cs
Just use mysql connector for cs and import the MySql.Data.dll to your project.
Here is an example mysql connect script:
using UnityEngine; using System.Collections; using MySql.Data.MySqlClient; using System;
public class mysqlconn : MonoBehaviour { static string row =""; // Use this for initialization public string Start () {
string myConnectionString = "SERVER=localhost;" +
"DATABASE=yugioh;" +
"UID=root2;";
MySqlConnection connection = new MySqlConnection(myConnectionString);
MySqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT * FROM accounts";
MySqlDataReader Reader;
try {
connection.Open();
Reader = command.ExecuteReader();
while (Reader.Read()) { for (int i = 0; i < Reader.FieldCount; i++) row += Reader.GetValue(i).ToString() + ", "; } }
catch (Exception x) {
Debug.Log(x.Message);
return x.Message;
}
connection.Close(); return row;
}
// Update is called once per frame
void Update () {
}
}
No no no! This would create a huge security hole! In the scenario that $$anonymous$$r. Drayton describes, you should never allow the client on the end user's machine to directly connect to your DB! (see my answer)
hi, Tobias Windberg can u please send me the exact procedure or code to make sure run properly without any loop holes
Answer by Jack Wong · Feb 19, 2014 at 03:43 AM
This one perhaps? http://answers.unity3d.com/questions/11021/how-can-i-send-and-receive-data-to-and-from-a-url.html I'm also currently searching way to do this, update me if you found the solution :)
Answer by tsondhi2006 · Sep 26, 2018 at 06:33 AM
I couldn't do it directly from unity but managed to do it using MySQL, PHP and of course C# in unity
I have posted the answer in another thread if you would want to see it
https://forum.unity.com/threads/reading-database-and-or-spreadsheets.11466/#post-3720700
Your answer
Follow this Question
Related Questions
Web Player and database 1 Answer
MySql On Web ? 1 Answer
Best way (performance) to connect to a (MYSQL) DB 2 Answers
Unity Null Reference Error 1 Answer
My code to php -> sql in PC good, in Android not work. plese fast 1 Answer