我正在写一段代码,计算不同数组的排序时间,必须把结果写到数据库中。三个表,名称,时间和数组大小。名字没有问题,但是当我需要向数据库写入一个存储在int变量中的数字时,我就遇到了问题。(它只是写为文本)我将附加一个排序的代码的一部分,其余的是相同的,它没有意义,以显示他们额外的。有一个函数可以使SQL查询。如何将变量的内容传递给它?
int main(){
DataBase *base= new DataBase();
openBd("test1Den\0");
int step = 100;
bool flag1 = 1 , flag2 = 1, flag3 = 1 , flag4 = 1, flag5 = 1 , flag6 = 1;
cout << " bubbleSort "<<" selectionSort "<<" countsort "<< " quickSort "<<" insertionSort "<< " mergeSort"<<endl;
std::chrono::time_point<std::chrono::high_resolution_clock> start;
std::chrono::time_point<std::chrono::high_resolution_clock> end;
chrono::duration<double> diff;
for(int arsize = 100; arsize <= 1000; arsize += step){
int* ar = new int[arsize];
cout<< arsize <<"\t";
randomFilling(ar , arsize ,0 , 999);
if ( flag1 ){
start = chrono::high_resolution_clock::now();
bubbleSort(ar,arsize);
end = chrono::high_resolution_clock::now();
diff = end - start;
request_insert_create("INSERT INTO Sorts(nameSort) VALUES('bubblesort');");
request_insert_create("INSERT INTO SizeArs(sizeAr) VALUES(arsize);");
cout<< diff.count()<< "\t";
if( diff.count() > 50){
flag1 = false;
}
}
else {
cout << "-----" << "\t";
}
在这个例子中,arsize是一个int变量,我需要把它写到数据库中。错误示例:INSERT INTO sizeArs(sizeAr)VALUES(arsize);:无此列:阿尔塞塞
1条答案
按热度按时间nzk0hqpo1#
arsize
* 在您的SQL语句"INSERT INTO SizeArs(sizeAr) VALUES(arsize);"
是不可访问的,当数据库服务器执行该语句,因此错误。值需要以某种方式绑定。
一个非常简单和天真的解决方案,为您的直接问题,并“绑定”变量可能是:
但正如我在评论中提到的,这不是使用SQL值绑定的推荐方法。关于标准SQL,我认为参数化查询是有标准的。
就该这样