SQL中寫入包含有英文單引號“ ' ”失敗問題深入詳解

當前碰到一個問題,在測試編輯信息內容,其中若編輯的內容包含單引號(‘)則寫入Mysql數據庫時寫入失敗,使用如下代碼進行錯誤打印:

if (!this->m_sql_query.prepare(update_string))
{
printf(“exec fail—>%s\n”, this->m_sql_query.lastError().text().toStdString().c_str());
}
if (!this->m_sql_query.exec())
{
printf(“exec fail—>%s\n”, this->m_sql_query.lastError().text().toStdString().c_str());
}

打印出的結果為:exec fail—>syntax error unable to execute statement

查閱相關資料如下所示:

在這裡插入圖片描述

在這裡插入圖片描述

經過分析後發現插入的內容中在編輯SQL語句的時候字符串被從單引號處截斷,導致語法錯誤。

解決辦法:將包含單引號的字符中的(‘)換成(”),就可以瞭。

SQL是用兩個單引號來代替一個單引號的

str = str.replace(” ‘“, ”''“);

到此這篇關於SQL中寫入包含有英文單引號“ ‘ ”失敗問題深入詳解的文章就介紹到這瞭,更多相關SQL中寫入包含有英文單引號“ ‘ ”失敗內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: