我正在重新编写代码,并且有很多用全局变量编写的查询,但我注意到其中一些查询只使用了一次。我假设第二种方法对于那些查询会更好。我是正确的?第二种方法使用更少的内存或没有差异?
当前方法(使用全局变量):
char g_query[] = "SELECT %s FROM %s WHERE %s >= %i";
void func()
{
printf(g_query, "name", "table", "something", 1);
}
第二种方法(不使用全局变量):
void func()
{
printf("SELECT %s FROM %s WHERE %s >= %i", "name", "table", "something", 1);
}
答案 0 :(得分:2)
他们都非常顽皮。我们不再在代码中嵌入这样的查询了。
使用参数化查询或使用存储过程。
否则你很容易受到SQL注入攻击和其他恶意攻击。
至于速度,瓶颈在于获取数据,更不用说在printf
调用中形成字符串了。不要让使用全局变量的性能方面或影响您的设计决策。