浏览代码

修复sql中有单引号'导致sql执行失败的问题

zhangyang 3 年之前
父节点
当前提交
f60a477ad4

+ 7 - 0
zhipuzi_pos_windows/helper/CLewaimaiString.cpp

@@ -602,4 +602,11 @@ std::string CLewaimaiString::GetQuweima(std::wstring input)
 	}
 
 	return result;
+}
+
+std::string CLewaimaiString::SqlZhuanyi(std::string old)
+{
+	CLewaimaiString::string_replace(old, "'", "''");
+
+	return old;
 }

+ 3 - 0
zhipuzi_pos_windows/helper/CLewaimaiString.h

@@ -68,4 +68,7 @@ public:
 
 	//用于条码标签秤,把Unicode格式的字符串(可以中英文混写)转换成用于条码秤的区位码
 	static std::string GetQuweima(std::wstring input);
+
+	//把字符串中的单引号'转化成2个单引号'',这样就可以插入到sqllite中,并且插入进去之后就是一个单引号
+	static std::string SqlZhuanyi(std::string old);
 };

+ 120 - 105
zhipuzi_pos_windows/tool/CSqlite3.cpp

@@ -733,8 +733,8 @@ bool CSqlite3::SaveParams(std::map<std::string, std::string>& params)
 
     for(std::map<std::string, std::string>::iterator it = params.begin(); it != params.end(); it++)
     {
-        std::string name = it->first;
-        std::string value = it->second;
+        std::string name = CLewaimaiString::SqlZhuanyi(it->first);
+        std::string value = CLewaimaiString::SqlZhuanyi(it->second);
 
         sql = "INSERT INTO pos_config (name, value) VALUES ('" + name + "','" + value + "');";
         result = sqlite3_exec(m_db, sql.c_str(), 0, 0, 0);
@@ -761,13 +761,13 @@ bool CSqlite3::SaveChufangPrinter(std::vector<ChufangPrinter>& printers)
 
 	for (std::vector<ChufangPrinter>::iterator it = printers.begin(); it != printers.end(); it++)
 	{
-		std::string date = (*it).date;
-		std::string name = (*it).name;
-		std::string ip = (*it).ip;
-		std::string guige = (*it).guige;
-		std::string fendan = (*it).fendan;
-		std::string fenlei = (*it).fenlei;
-		std::string fenlei_ids = (*it).fenlei_ids;
+		std::string date = CLewaimaiString::SqlZhuanyi((*it).date);
+		std::string name = CLewaimaiString::SqlZhuanyi((*it).name);
+		std::string ip = CLewaimaiString::SqlZhuanyi((*it).ip);
+		std::string guige = CLewaimaiString::SqlZhuanyi((*it).guige);
+		std::string fendan = CLewaimaiString::SqlZhuanyi((*it).fendan);
+		std::string fenlei = CLewaimaiString::SqlZhuanyi((*it).fenlei);
+		std::string fenlei_ids = CLewaimaiString::SqlZhuanyi((*it).fenlei_ids);
 
 		sql = "INSERT INTO pos_chufang_printer (date, name, ip, guige, fendan, fenlei, fenlei_ids) VALUES ('" + date + "' ,'" + name + "','" + ip + "','" + guige + "','" + fendan + "','" + fenlei + "','" + fenlei_ids + "')";
 		result = sqlite3_exec(m_db, sql.c_str(), 0, 0, 0);
@@ -794,8 +794,8 @@ bool CSqlite3::SaveUsers(std::map<string, string> users)
 
     for(std::map<std::string, std::string>::iterator it = users.begin(); it != users.end(); it++)
     {
-        std::string name = it->first;
-        std::string password = it->second;
+        std::string name = CLewaimaiString::SqlZhuanyi(it->first);
+        std::string password = CLewaimaiString::SqlZhuanyi(it->second);
 
         sql = "INSERT INTO pos_user (username, password) VALUES ('" + name + "' ,'" + password + "')";
         result = sqlite3_exec(m_db, sql.c_str(), 0, 0, 0);
@@ -818,57 +818,51 @@ bool CSqlite3::InitFoodData(rapidjson::Value& foodrows)
 	this->ExeSQl("begin;");
 
 	//先清空之前的旧数据,重新完整写入新数据
-	std::string sql = "delete from pos_food;";
-	this->ExeSQl(sql);
+	std::string sql_delete = "delete from pos_food;";
+	this->ExeSQl(sql_delete);
 
 	for (rapidjson::SizeType i = 0; i < foodrows.Size(); ++i)
 	{
 		rapidjson::Value& foodinfo = foodrows[i];
 
-		std::string id = foodinfo["id"].GetString();
-
-		if (id == "5625413")
-		{
-			int a = 1;
-		}
-
-		std::string shop_id = foodinfo["shop_id"].GetString();
-		std::string name = foodinfo["name"].GetString();
-		std::string price = foodinfo["price"].GetString();
-		std::string tag = foodinfo["tag"].GetString();
-		std::string status = foodinfo["status"].GetString();
-		std::string type_id = foodinfo["type_id"].GetString();
-		std::string is_dabao = foodinfo["is_dabao"].GetString();
-		std::string dabao_money = foodinfo["dabao_money"].GetString();
-		std::string is_nature = foodinfo["is_nature"].GetString();
-
-		std::string nature = CLewaimaiJson::JsonToString(foodinfo["nature"]);
-
-		std::string autostocknum = foodinfo["autostocknum"].GetString();
-		std::string goods_img = foodinfo["goods_img"].GetString();
-		std::string unit = foodinfo["unit"].GetString();
-		std::string barcode = foodinfo["barcode"].GetString();
-		std::string member_price_used  = foodinfo["member_price_used"].GetString();
-		std::string member_price = foodinfo["member_price"].GetString();
-		std::string buying_price = foodinfo["buying_price"].GetString();
-		std::string stock = foodinfo["stock"].GetString();
-		std::string stockvalid = foodinfo["stockvalid"].GetString();
-		std::string stock_warning = foodinfo["stock_warning"].GetString();
-		std::string is_shouyinji_show = foodinfo["is_shouyinji_show"].GetString();
-		std::string expiration_date = foodinfo["expiration_date"].GetString();
-		std::string is_weight = foodinfo["is_weight"].GetString();
-		std::string member_price_json = foodinfo["member_price_json"].GetString();
-
-		std::string is_waimai_show = foodinfo["is_waimai_show"].GetString();
-		std::string is_tangshi_show = foodinfo["is_tangshi_show"].GetString();
-		std::string is_zhengcan_show = foodinfo["is_zhengcan_show"].GetString();
-		std::string jiagong_type = foodinfo["jiagong_type"].GetString();
-		std::string cost_mode = foodinfo["cost_mode"].GetString();
+		std::string id = CLewaimaiString::SqlZhuanyi(foodinfo["id"].GetString());
+		std::string shop_id = CLewaimaiString::SqlZhuanyi(foodinfo["shop_id"].GetString());
+		std::string name = CLewaimaiString::SqlZhuanyi(foodinfo["name"].GetString());
+		std::string price = CLewaimaiString::SqlZhuanyi(foodinfo["price"].GetString());
+		std::string tag = CLewaimaiString::SqlZhuanyi(foodinfo["tag"].GetString());
+		std::string status = CLewaimaiString::SqlZhuanyi(foodinfo["status"].GetString());
+		std::string type_id = CLewaimaiString::SqlZhuanyi(foodinfo["type_id"].GetString());
+		std::string is_dabao = CLewaimaiString::SqlZhuanyi(foodinfo["is_dabao"].GetString());
+		std::string dabao_money = CLewaimaiString::SqlZhuanyi(foodinfo["dabao_money"].GetString());
+		std::string is_nature = CLewaimaiString::SqlZhuanyi(foodinfo["is_nature"].GetString());
+
+		std::string nature = CLewaimaiString::SqlZhuanyi(CLewaimaiJson::JsonToString(foodinfo["nature"]));
+
+		std::string autostocknum = CLewaimaiString::SqlZhuanyi(foodinfo["autostocknum"].GetString());
+		std::string goods_img = CLewaimaiString::SqlZhuanyi(foodinfo["goods_img"].GetString());
+		std::string unit = CLewaimaiString::SqlZhuanyi(foodinfo["unit"].GetString());
+		std::string barcode = CLewaimaiString::SqlZhuanyi(foodinfo["barcode"].GetString());
+		std::string member_price_used  = CLewaimaiString::SqlZhuanyi(foodinfo["member_price_used"].GetString());
+		std::string member_price = CLewaimaiString::SqlZhuanyi(foodinfo["member_price"].GetString());
+		std::string buying_price = CLewaimaiString::SqlZhuanyi(foodinfo["buying_price"].GetString());
+		std::string stock = CLewaimaiString::SqlZhuanyi(foodinfo["stock"].GetString());
+		std::string stockvalid = CLewaimaiString::SqlZhuanyi(foodinfo["stockvalid"].GetString());
+		std::string stock_warning = CLewaimaiString::SqlZhuanyi(foodinfo["stock_warning"].GetString());
+		std::string is_shouyinji_show = CLewaimaiString::SqlZhuanyi(foodinfo["is_shouyinji_show"].GetString());
+		std::string expiration_date = CLewaimaiString::SqlZhuanyi(foodinfo["expiration_date"].GetString());
+		std::string is_weight = CLewaimaiString::SqlZhuanyi(foodinfo["is_weight"].GetString());
+		std::string member_price_json = CLewaimaiString::SqlZhuanyi(foodinfo["member_price_json"].GetString());
+
+		std::string is_waimai_show = CLewaimaiString::SqlZhuanyi(foodinfo["is_waimai_show"].GetString());
+		std::string is_tangshi_show = CLewaimaiString::SqlZhuanyi(foodinfo["is_tangshi_show"].GetString());
+		std::string is_zhengcan_show = CLewaimaiString::SqlZhuanyi(foodinfo["is_zhengcan_show"].GetString());
+		std::string jiagong_type = CLewaimaiString::SqlZhuanyi(foodinfo["jiagong_type"].GetString());
+		std::string cost_mode = CLewaimaiString::SqlZhuanyi(foodinfo["cost_mode"].GetString());
 
 		std::string weight_plu_code;
 		if (foodinfo["weight_plu_code"].IsString())
 		{
-			weight_plu_code = foodinfo["weight_plu_code"].GetString();
+			weight_plu_code = CLewaimaiString::SqlZhuanyi(foodinfo["weight_plu_code"].GetString());
 		}
 		else
 		{
@@ -878,7 +872,7 @@ bool CSqlite3::InitFoodData(rapidjson::Value& foodrows)
 		std::string weight_food_code;
 		if (foodinfo["weight_food_code"].IsString())
 		{
-			weight_food_code = foodinfo["weight_food_code"].GetString();
+			weight_food_code = CLewaimaiString::SqlZhuanyi(foodinfo["weight_food_code"].GetString());
 		}
 		else
 		{
@@ -895,7 +889,7 @@ bool CSqlite3::InitFoodData(rapidjson::Value& foodrows)
 		bool ret = this->ExeSQl(sql);
 		if (!ret)
 		{
-			LOG_INFO("商品插入失败:" << i);
+			LOG_INFO("商品插入失败,sql:" << sql.c_str());
 			return false;
 		}
 	}
@@ -917,10 +911,10 @@ bool CSqlite3::InitFoodtypeData(rapidjson::Value& foodtyperows)
 	{
 		rapidjson::Value& foodtypeinfo = foodtyperows[i];
 
-		std::string type_id = foodtypeinfo["type_id"].GetString();
-		std::string name = foodtypeinfo["name"].GetString();
-		std::string is_shouyinji_show = foodtypeinfo["is_shouyinji_show"].GetString();
-		std::string tag = foodtypeinfo["tag"].GetString();
+		std::string type_id = CLewaimaiString::SqlZhuanyi(foodtypeinfo["type_id"].GetString());
+		std::string name = CLewaimaiString::SqlZhuanyi(foodtypeinfo["name"].GetString());
+		std::string is_shouyinji_show = CLewaimaiString::SqlZhuanyi(foodtypeinfo["is_shouyinji_show"].GetString());
+		std::string tag = CLewaimaiString::SqlZhuanyi(foodtypeinfo["tag"].GetString());
 
 		//插入一个商品数据
 		std::string sql = "INSERT INTO pos_foodtype (id,name,is_shouyinji_show,tag) VALUES ('" + type_id + "' ,'" +  name + "', '" + is_shouyinji_show + "', '" + tag + "')";
@@ -950,22 +944,22 @@ bool CSqlite3::InitFoodpackageData(rapidjson::Value& foodpackagerows)
 	{
 		rapidjson::Value& foodinfo = foodpackagerows[i];
 
-		std::string id = foodinfo["id"].GetString();
-		std::string shop_id = foodinfo["shop_id"].GetString();
-		std::string name = foodinfo["name"].GetString();
-		std::string price = foodinfo["price"].GetString();
-		std::string tag = foodinfo["tag"].GetString();
-		std::string status = foodinfo["status"].GetString();
-		std::string is_dabao = foodinfo["is_dabao"].GetString();
-		std::string dabao_money = foodinfo["dabao_money"].GetString();
+		std::string id = CLewaimaiString::SqlZhuanyi(foodinfo["id"].GetString());
+		std::string shop_id = CLewaimaiString::SqlZhuanyi(foodinfo["shop_id"].GetString());
+		std::string name = CLewaimaiString::SqlZhuanyi(foodinfo["name"].GetString());
+		std::string price = CLewaimaiString::SqlZhuanyi(foodinfo["price"].GetString());
+		std::string tag = CLewaimaiString::SqlZhuanyi(foodinfo["tag"].GetString());
+		std::string status = CLewaimaiString::SqlZhuanyi(foodinfo["status"].GetString());
+		std::string is_dabao = CLewaimaiString::SqlZhuanyi(foodinfo["is_dabao"].GetString());
+		std::string dabao_money = CLewaimaiString::SqlZhuanyi(foodinfo["dabao_money"].GetString());
 
-		std::string nature = CLewaimaiJson::JsonToString(foodinfo["nature"]);
+		std::string nature = CLewaimaiString::SqlZhuanyi(CLewaimaiJson::JsonToString(foodinfo["nature"]));
 
-		std::string goods_img = foodinfo["goods_img"].GetString();
-		std::string unit = foodinfo["unit"].GetString();
-		std::string supporttype = foodinfo["supporttype"].GetString();
-		std::string is_shouyinji_show = foodinfo["is_shouyinji_show"].GetString();
-		std::string barcode = foodinfo["barcode"].GetString();
+		std::string goods_img = CLewaimaiString::SqlZhuanyi(foodinfo["goods_img"].GetString());
+		std::string unit = CLewaimaiString::SqlZhuanyi(foodinfo["unit"].GetString());
+		std::string supporttype = CLewaimaiString::SqlZhuanyi(foodinfo["supporttype"].GetString());
+		std::string is_shouyinji_show = CLewaimaiString::SqlZhuanyi(foodinfo["is_shouyinji_show"].GetString());
+		std::string barcode = CLewaimaiString::SqlZhuanyi(foodinfo["barcode"].GetString());
 
 		//插入一个商品数据
 		std::string sql = "INSERT INTO pos_foodpackage (id,shop_id,name,price,tag,status,is_dabao,dabao_money,nature,goods_img,unit,supporttype,is_shouyinji_show,barcode) VALUES ('" + id + "' ,'" + shop_id + "','" \
@@ -990,40 +984,40 @@ bool CSqlite3::UpdateOneFood(rapidjson::Value& foodrows)
 	this->ExeSQl("begin;");
 
 	rapidjson::Value& foodinfo = foodrows;
-	std::string id = foodinfo["goods_id"].GetString();
+	std::string id = CLewaimaiString::SqlZhuanyi(foodinfo["goods_id"].GetString());
 
 	//不管当前有没有这个商品,执行一下删除
 	std::string sql_delete = "delete from pos_food where id = '" + id + "';";
 	this->ExeSQl(sql_delete);
 	
-	std::string shop_id = foodinfo["shop_id"].GetString();
-	std::string name = foodinfo["goods_name"].GetString();
-	std::string price = foodinfo["goods_price"].GetString();
-	std::string tag = foodinfo["goods_tag"].GetString();
-	std::string status = foodinfo["goods_status"].GetString();
-	std::string type_id = foodinfo["type_lv1_id"].GetString();
-	std::string is_dabao = foodinfo["is_dabao"].GetString();
-	std::string dabao_money = foodinfo["dabao_money"].GetString();
-	std::string is_nature = foodinfo["is_nature"].GetString();
+	std::string shop_id = CLewaimaiString::SqlZhuanyi(foodinfo["shop_id"].GetString());
+	std::string name = CLewaimaiString::SqlZhuanyi(foodinfo["goods_name"].GetString());
+	std::string price = CLewaimaiString::SqlZhuanyi(foodinfo["goods_price"].GetString());
+	std::string tag = CLewaimaiString::SqlZhuanyi(foodinfo["goods_tag"].GetString());
+	std::string status = CLewaimaiString::SqlZhuanyi(foodinfo["goods_status"].GetString());
+	std::string type_id = CLewaimaiString::SqlZhuanyi(foodinfo["type_lv1_id"].GetString());
+	std::string is_dabao = CLewaimaiString::SqlZhuanyi(foodinfo["is_dabao"].GetString());
+	std::string dabao_money = CLewaimaiString::SqlZhuanyi(foodinfo["dabao_money"].GetString());
+	std::string is_nature = CLewaimaiString::SqlZhuanyi(foodinfo["is_nature"].GetString());
 
 	std::string nature;	
 	if (is_nature == "1")
 	{
-		nature = CLewaimaiJson::JsonToString(foodinfo["nature"]);
+		nature = CLewaimaiString::SqlZhuanyi(CLewaimaiJson::JsonToString(foodinfo["nature"]));
 	}
 	else
 	{
 		nature = "";
 	}
 
-	std::string autostocknum = foodinfo["autostocknum"].GetString();
-	std::string goods_img = foodinfo["goods_img"].GetString();
-	std::string unit = foodinfo["unit"].GetString();
-	std::string barcode = foodinfo["barcode"].GetString();
-	std::string member_price_used = foodinfo["member_price_used"].GetString();
-	std::string member_price = foodinfo["member_price"].GetString();
-	std::string buying_price = foodinfo["buying_price"].GetString();
-	std::string stock = to_string(foodinfo["stock"].GetDouble());
+	std::string autostocknum = CLewaimaiString::SqlZhuanyi(foodinfo["autostocknum"].GetString());
+	std::string goods_img = CLewaimaiString::SqlZhuanyi(foodinfo["goods_img"].GetString());
+	std::string unit = CLewaimaiString::SqlZhuanyi(foodinfo["unit"].GetString());
+	std::string barcode = CLewaimaiString::SqlZhuanyi(foodinfo["barcode"].GetString());
+	std::string member_price_used = CLewaimaiString::SqlZhuanyi(foodinfo["member_price_used"].GetString());
+	std::string member_price = CLewaimaiString::SqlZhuanyi(foodinfo["member_price"].GetString());
+	std::string buying_price = CLewaimaiString::SqlZhuanyi(foodinfo["buying_price"].GetString());
+	std::string stock = CLewaimaiString::SqlZhuanyi(to_string(foodinfo["stock"].GetDouble()));
 
 	std::string stockvalid;
 	std::string stock_status = foodinfo["stock_status"].GetString();
@@ -1036,22 +1030,22 @@ bool CSqlite3::UpdateOneFood(rapidjson::Value& foodrows)
 		stockvalid = "0";
 	}
 	
-	std::string stock_warning = to_string(foodinfo["stock_warning"].GetDouble());
-	std::string is_shouyinji_show = foodinfo["is_shouyinji_show"].GetString();
-	std::string expiration_date = foodinfo["expiration_date"].GetString();
-	std::string is_weight = foodinfo["is_weight"].GetString();
-	std::string member_price_json = foodinfo["member_price_json"].GetString();
-
-	std::string is_waimai_show = foodinfo["is_waimai_show"].GetString();
-	std::string is_tangshi_show = foodinfo["is_tangshi_show"].GetString();
-	std::string is_zhengcan_show = foodinfo["is_zhengcan_show"].GetString();
-	std::string jiagong_type = foodinfo["jiagong_type"].GetString();
-	std::string cost_mode = foodinfo["cost_mode"].GetString();
+	std::string stock_warning = CLewaimaiString::SqlZhuanyi(to_string(foodinfo["stock_warning"].GetDouble()));
+	std::string is_shouyinji_show = CLewaimaiString::SqlZhuanyi(foodinfo["is_shouyinji_show"].GetString());
+	std::string expiration_date = CLewaimaiString::SqlZhuanyi(foodinfo["expiration_date"].GetString());
+	std::string is_weight = CLewaimaiString::SqlZhuanyi(foodinfo["is_weight"].GetString());
+	std::string member_price_json = CLewaimaiString::SqlZhuanyi(foodinfo["member_price_json"].GetString());
+
+	std::string is_waimai_show = CLewaimaiString::SqlZhuanyi(foodinfo["is_waimai_show"].GetString());
+	std::string is_tangshi_show = CLewaimaiString::SqlZhuanyi(foodinfo["is_tangshi_show"].GetString());
+	std::string is_zhengcan_show = CLewaimaiString::SqlZhuanyi(foodinfo["is_zhengcan_show"].GetString());
+	std::string jiagong_type = CLewaimaiString::SqlZhuanyi(foodinfo["jiagong_type"].GetString());
+	std::string cost_mode = CLewaimaiString::SqlZhuanyi(foodinfo["cost_mode"].GetString());
 
 	std::string weight_plu_code;
 	if (foodinfo["weight_plu_code"].IsString())
 	{
-		weight_plu_code = foodinfo["weight_plu_code"].GetString();
+		weight_plu_code = CLewaimaiString::SqlZhuanyi(foodinfo["weight_plu_code"].GetString());
 	}
 	else
 	{
@@ -1061,7 +1055,7 @@ bool CSqlite3::UpdateOneFood(rapidjson::Value& foodrows)
 	std::string weight_food_code;
 	if (foodinfo["weight_food_code"].IsString())
 	{
-		weight_food_code = foodinfo["weight_food_code"].GetString();
+		weight_food_code = CLewaimaiString::SqlZhuanyi(foodinfo["weight_food_code"].GetString());
 	}
 	else
 	{
@@ -1088,6 +1082,8 @@ bool CSqlite3::UpdateOneFood(rapidjson::Value& foodrows)
 
 bool CSqlite3::DeleteOneFood(std::string food_id)
 {
+	food_id = CLewaimaiString::SqlZhuanyi(food_id);
+
 	this->ExeSQl("begin;");
 
 	//不管当前有没有这个商品,执行一下删除
@@ -1103,6 +1099,11 @@ bool CSqlite3::AddOneFoodtype(std::string type_id, std::string name, std::string
 {
 	this->ExeSQl("begin;");
 
+	type_id = CLewaimaiString::SqlZhuanyi(type_id);
+	name = CLewaimaiString::SqlZhuanyi(name);
+	is_shouyinji_show = CLewaimaiString::SqlZhuanyi(is_shouyinji_show);
+	tag = CLewaimaiString::SqlZhuanyi(tag);
+
 	//插入一个商品数据
 	std::string sql = "INSERT INTO pos_foodtype (id,name,is_shouyinji_show,tag) VALUES ('" + type_id + "' ,'" + name + "', '" + is_shouyinji_show + "', '" + tag + "')";
 
@@ -1213,6 +1214,8 @@ std::vector<CFoodType> CSqlite3::GetFoodtypes(bool is_shouyinji_show)
 
 bool CSqlite3::GetFoodtypeById(std::string foodtype_id, CFoodType& newFoodType)
 {
+	foodtype_id = CLewaimaiString::SqlZhuanyi(foodtype_id);
+
 	bool is_found = false;
 
 	std::string sql = "SELECT * FROM pos_foodtype WHERE id = '" + foodtype_id + "'";
@@ -1247,6 +1250,8 @@ bool CSqlite3::GetFoodtypeById(std::string foodtype_id, CFoodType& newFoodType)
  */
 std::vector<CFood> CSqlite3::GetFoodByTypeid(std::string type_id, bool is_shouyinji_show)
 {
+	type_id = CLewaimaiString::SqlZhuanyi(type_id);
+
 	std::vector<CFood> data;
 
 	std::string sql;
@@ -1391,6 +1396,8 @@ std::vector<CFood> CSqlite3::GetFoodByFoodname(std::string foodname, bool is_sho
 
 	std::string sql;
 
+	foodname = CLewaimaiString::SqlZhuanyi(foodname);
+
 	if (is_shouyinji_show)
 	{
 		sql = "SELECT * FROM pos_food WHERE name LIKE '%" + foodname + "%' AND status='NORMAL' AND is_shouyinji_show = '1'";
@@ -1511,6 +1518,8 @@ std::vector<CFoodpackage> CSqlite3::GetFoodpackages(bool is_shouyinji_show)
 
 bool CSqlite3::GetFoodById(std::string food_id, CFood& newFood)
 {
+	food_id = CLewaimaiString::SqlZhuanyi(food_id);
+
 	bool is_found = false;
 
 	std::string sql = "SELECT * FROM pos_food WHERE id = '" + food_id + "'";
@@ -1572,6 +1581,8 @@ bool CSqlite3::GetFoodByBarcode(std::string barcode, CFood& newFood)
 {
 	bool is_found = false;
 
+	barcode = CLewaimaiString::SqlZhuanyi(barcode);
+
 	std::string sql = "SELECT * FROM pos_food WHERE barcode = '" + barcode + "'";
 
 	sqlite3_stmt * stmt = NULL;
@@ -1631,6 +1642,8 @@ bool CSqlite3::GetFoodByPluBianma(std::string barcode, CFood& newFood)
 {
 	bool is_found = false;
 
+	barcode = CLewaimaiString::SqlZhuanyi(barcode);
+
 	std::string sql = "SELECT * FROM pos_food WHERE is_weight = '1' AND weight_food_code = '" + barcode + "'";
 
 	sqlite3_stmt * stmt = NULL;
@@ -1689,6 +1702,8 @@ bool CSqlite3::GetFoodByPluBianma(std::string barcode, CFood& newFood)
 //更新商品ID的库存
 void CSqlite3::UpdateFoodStock(std::string food_id, std::string stock)
 {
+	food_id = CLewaimaiString::SqlZhuanyi(food_id);
+
 	int result = sqlite3_exec(m_db, "BEGIN;", 0, 0, 0);
 
 	std::string sql = "UPDATE pos_food SET stock = '" + stock + "' WHERE id = " + food_id;