0
我想用mysql_real_escape_string處理撇號,反斜線等我搜索,發現這個功能的MySQL/C++接口mysql_real_escape_string功能
unsigned long mysql_real_escape_string(MYSQL *mysql,
char *to, const char *from, unsigned long length)
但這需要MYSQL *,但我用這個代碼連接:
sql::Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
// Create a connection
driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "root", "anubha");
con->setSchema("db");
stmt = con->createStatement();
所以,如果我沒有一個MYSQL * mysql對象作爲函數需要。 如果我做連接是這樣的:
MYSQL* conn = mysql_init(NULL);
mysql_real_connect(conn,"tcp://127.0.0.1:3306", "root",
"anubha", "db" ,0,NULL,0);
然後,因爲我有MYSQL *對象,我可以使用的功能,但我應該改變連接代碼只是爲了使用此功能。沒有其他功能可用嗎?還有兩種連接方式有什麼區別,是C vs C++ mysql connector api的區別?
將使用prepareStatement處理轉義字符,如'\ etc? – Anubha
是的,它會的。 http://www.theserverside.com/news/1365244/Why-Prepared-Statements-are-important-and-how-to-use-them-properly –
它顯示警告prep_stmt'具有不完整的類型[默認情況下啓用]並在我使用prep_stmt行錯誤:錯誤:無效使用不完整類型'類SQL :: PreparedStatement' – Anubha