Sign in to follow this  

Cross Platform C++ Database library?

This topic is 1264 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I basically need a free c++ library for doing MySQL operations. It needs to work on Windows, Android, IOS, Mac. Does anyone have some suggestions? 

Share this post


Link to post
Share on other sites
If you don't literally need MySQL, you might also consider SQLite. Android/iOS implies to me that you might be needing some kind of offline mode and not connecting to an actual server, so an embedded DB like SQLite could make more sense than trying to use embedded MySQL.

Share this post


Link to post
Share on other sites

^

| oh well, I admit I didn't think of that. Also, no, I don't need it for offline use, I basically need to store ids and passwords for a multiplayer game. I guess I'll go with the mysql client library and link everything statically, including boost. Hope it works.

Share this post


Link to post
Share on other sites

But I see it uses boost, which has dlls, so wouldn't that be a problem for cross platform?

I don't know where you're seeing boost. The MySQL client library is a pure C API.

Share this post


Link to post
Share on other sites

Sorry, I downloaded the connectors, not the actual source. I actually have trouble finding the windows source, could you help with a link?

Share this post


Link to post
Share on other sites

Ok, got the message, but still, where is the source for MySql?, I can't still find it.

 

Also, why do you think its such a bad ideea to connect to a database directly?

Share this post


Link to post
Share on other sites

 

^
| oh well, I admit I didn't think of that. Also, no, I don't need it for offline use, I basically need to store ids and passwords for a multiplayer game. I guess I'll go with the mysql client library and link everything statically, including boost. Hope it works.


Then you absolutely _DO NOT_ want to care about iOS/Mac/Windows/etc. support, as it would be pure unadulterated madness to have the client connecting to the database directly.

The client should connect to some kind of front-end service (either the game over a custom protocol or an HTTP service) and make its login request to that. That service (running on an server somewhere, probably on Linux) then connects to the database, which is located internal to your network/data-centers/VPNs and behind a firewall.

 

That.

Never give client direct access to db. A user can just take the db credentials you include in the app and dump all the password hashes from the table. You should design a safe API for the client to use (probably easiest to set it up in php, or as a part of your game server).

However, there could be a way to do it safely with client connecting directly to db if you do not want this mediator service: make stored procedures in sql (highly vendor-specific) and make sure the client cannot ever directly access the tables and only those stored procedures.

Share this post


Link to post
Share on other sites

I see your point regarding security. I'll go with the server and add a little encryption between the client and server. But still, how does one get hands on the MySql source? I followed the links, tried with Bazaar, no success!

Share this post


Link to post
Share on other sites

I see your point regarding security. I'll go with the server and add a little encryption between the client and server. But still, how does one get hands on the MySql source? I followed the links, tried with Bazaar, no success!

 

The mysql source can be found here:

http://dev.mysql.com/downloads/mysql/

 

Select "Source code" as your platform to get the source code (Same thing goes for all the connector libraries etc, just select source code as your platform if you don't want a binary package)

Share this post


Link to post
Share on other sites

This topic is 1264 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this