c++ 如何在sql行中插入变量

bvn4nwqk  于 2023-05-02  发布在  其他
关注(0)|答案(1)|浏览(155)

我正在写一段代码,计算不同数组的排序时间,必须把结果写到数据库中。三个表,名称,时间和数组大小。名字没有问题,但是当我需要向数据库写入一个存储在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);:无此列:阿尔塞塞

nzk0hqpo

nzk0hqpo1#

  • arsize* 在您的SQL语句"INSERT INTO SizeArs(sizeAr) VALUES(arsize);"是不可访问的,当数据库服务器执行该语句,因此错误。

值需要以某种方式绑定。
一个非常简单和天真的解决方案,为您的直接问题,并“绑定”变量可能是:

std::string insert_stmt = "INSERT INTO SizeArs(sizeAr) VALUES("s + std::to_string(arsize) + ");"
request_insert_create(insert_stmt.c_str());

但正如我在评论中提到的,这不是使用SQL值绑定的推荐方法。关于标准SQL,我认为参数化查询是有标准的。
就该这样

相关问题